03.JavaScript语法中
来源:互联网 发布:滑板淘宝店 编辑:程序博客网 时间:2024/05/17 22:22
一.字符串处理方法
1、字符串合并操作:“ + ”
var name = 'Tom'; var age = 18; //弹出"我的名字叫做Tom,我的年龄是18岁" alert('我的名字叫做'+ name +',我的年龄是'+age+'岁;' );
2、parseInt() 将数字字符串转化为整数
var a = 12; var b = '23'; alert(parseInt(a)+parseInt(b));
3、parseFloat() 将数字字符串转化为小数
var a = 5.6; var b = 4.2; var c = 0.1; var d = 0.2; alert(parseFloat(a)+parseFloat(b)); // alert(parseFloat(c)+parseFloat(d));弹出0.30000000004 // 相加等于0.30000000004的问题,解决方法是先乘以100,再除以100 alert((parseFloat(c)*100+parseFloat(d)*100)/100);
4、split() 把一个字符串分隔成字符串组成的数组
var sTr = '2016-12-5'; var aRr = sTr.split('-'); // alert(typeof(aRr)); for (var i=0;i<aRr.length;i++) { alert(aRr[i]);//依次弹出2016,12,5 }
5、charAt() 获取字符串中的某一个字符
var sTr1 = '#div1'; var sTr2 = sTr1.charAt(0); alert(sTr2);//弹出#
6、indexOf() 查找字符串是否含有某字符
var sTr = 'Microsoft yahei'; var num1 = sTr.indexOf('yahei'); alert(num); //找到就弹出字符串出现的位置:10,从0开始数 var num2 = sTr.indexOf('xihei'); alert(num2); //没有找到就弹出 -1
7、substring() 截取字符串 用法: substring(start,end)(不包括end)
8、toUpperCase() 字符串转大写
9、toLowerCase() 字符串转小写
var sTr1="abcdefghijklmn" var sTr2 = sTr1.substring(10); //从第10个截到结尾,从0开始数 alert(sTr2);//弹出klmn alert(sTr2.toUpperCase());//弹出KLMN
10、字符串反转
var str = '12345'; var str2 = str.split('').reverse().join('-'); alert(str2)//弹出1-2-3-4-5
二、调试程序的方法
1、alert
之前经常使用的,弹出对话框的功能
2、console.log
<script type="text/javascript"> console.log("123");</script>
二、定时器
定时器在javascript中的作用
- 1、制作动画
- 2、异步操作
- 3、函数缓冲与节流
定时器类型及语法
setTimeout 只执行一次的定时器 clearTimeout 关闭只执行一次的定时器setInterval 反复执行的定时器clearInterval 关闭反复执行的定时器
一个简单的例子:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script type="text/javascript"> var time1 = setTimeout(myalert,2000);//每隔2秒弹出一个对话框 var time2 = setInterval(myalert,2000); /* clearTimeout(time1); clearInterval(time2); */ function myalert(){ alert('ok!'); } </script></body></html>
定时器制作时钟
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body><div id="div1"></div><script type="text/javascript"> window.onload = function(){ var oDiv = document.getElementById('div1'); function timego(){ var now = new Date(); var year = now.getFullYear(); var month = now.getMonth()+1; var date = now.getDate(); var week = now.getDay(); var hour = now.getHours(); var minute = now.getMinutes(); var second = now.getSeconds(); var str = '当前时间是:'+ year + '年'+month+'月'+date+'日 '+toweek(week)+' '+todou(hour)+':'+todou(minute)+':'+todou(second); oDiv.innerHTML = str; } timego(); setInterval(timego,1000); } //转换日期 function toweek(n){ if(n==0) { return '星期日'; } else if(n==1) { return '星期一'; } else if(n==2) { return '星期二'; } else if(n==3) { return '星期三'; } else if(n==4) { return '星期四'; } else if(n==5) { return '星期五'; } else { return '星期六'; } } //如果是个位数,则补上一个0 function todou(n){ if(n<10) { return '0'+n; } else { return n; } }</script></body></html>
定时器制作倒计时
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body > <h2>剩余时间:</h2> <div id="timer"></div> <script language="javascript" type="text/javascript"> window.onload=function(){function leftTimer(){ var leftTime = (new Date(2017,8-1,28,16,20,00)) - (new Date()); //计算剩余的毫秒数 var days = parseInt(leftTime / 1000 / 60 / 60 / 24 , 10); //计算剩余的天数 var hours = parseInt(leftTime / 1000 / 60 / 60 % 24 , 10); //计算剩余的小时 var minutes = parseInt(leftTime / 1000 / 60 % 60, 10);//计算剩余的分钟 var seconds = parseInt(leftTime / 1000 % 60, 10);//计算剩余的秒数 days = checkTime(days); hours = checkTime(hours); minutes = checkTime(minutes); seconds = checkTime(seconds); document.getElementById("timer").innerHTML ='距离2017年8月28日晚16点还剩下'+days+'天'+hours+'时'+minutes+'分'+seconds+'秒';; } function checkTime(i){ //将0-9的数字前面加上0,例1变为01 if(i<10) { i = "0" + i; } return i; }leftTimer();setInterval(leftTimer,1000); }</script></body></html>
三、类型转换
1、直接转换 parseInt() 与 parseFloat()
alert('12'+7); //弹出127alert( parseInt('12') + 7 ); //弹出19 alert( parseInt(5.6)); // 弹出5alert('5.6'+2.3); // 弹出5.62.3alert(parseFloat('5.6')+2.3); // 弹出7.8999999999999995alert(0.1+0.2); //弹出 0.3000000000000004alert((0.1*100+0.2*100)/100); //弹出0.3alert((parseFloat('5.6')*100+2.3*100)/100); //弹出7.9
2、隐式转换 “==” 和 “-”
if('3'==3){ alert('相等');}
3、NaN 和 isNaN
alert( parseInt('123abc') ); // 弹出123alert( parseInt('abc123') ); // 弹出NaN
四、变量作用域
变量作用域指的是变量的作用范围,javascript中的变量分为全局变量和局部变量。
- 1、全局变量:在函数之外定义的变量,为整个页面公用,函数内部外部都可以访问。
- 2、局部变量:在函数内部定义的变量,只能在定义该变量的函数内部访问,外部无法访问。
<script type="text/javascript"> //全局变量 var a = 12; function myalert() { //局部变量 var b = 23; alert(a); alert(b); } myalert(); //弹出12和23 alert(a); //弹出12 alert(b); //出错</script>
五、封闭函数
封闭函数是javascript中匿名函数的另外一种写法,创建一个一开始就执行而不用命名的函数。
一般定义的函数和执行函数:
function changecolor(){ var oDiv = document.getElementById('div1'); oDiv.style.color = 'red';}changecolor();
函数用变量方式定义:
var myalert = function(){ alert('hello!'); }myalert();
封闭函数:把匿名函数用()包起来,再在后面加()就成了封闭函数
// 封闭函数定义:(function(){ .... })()(function(){ var oDiv = document.getElementById('div1'); oDiv.style.color = 'red';})();
还可以在函数定义前加上“~”和“!”等符号来定义匿名函数
!function(){ var oDiv = document.getElementById('div1'); oDiv.style.color = 'red';}()
完整的例子:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body><div id="div1">1232</div><script type="text/javascript"> (function(){ var oDiv = document.getElementById('div1'); oDiv.style.color = 'red'; })();//一开始就执行了</script></body></html>
六、闭包
什么是闭包
函数嵌套函数,内部函数可以引用外部函数的参数和变量,参数和变量不会被垃圾回收机
function aaa(a){ var b = 5; function bbb(){ a++; b++; alert(a); alert(b); } return bbb; }var ccc = aaa(2);ccc();ccc();
封闭函数的形式:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body><script type="text/javascript"> function aaa(a){ var b = 5; function bbb(){ a++; b++; alert(a); alert(b); } return bbb; } var ccc = aaa(2); ccc();//弹出3,6 ccc();//弹出4,7 </script></body></html>
用处
1、将一个变量长期驻扎在内存当中,可用于循环中存索引值
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>闭包的用途-存循环的索引值</title> <script type="text/javascript"> window.onload = function(){ var aLi = document.getElementsByTagName('li'); // for (var i=0;i<aLi.length;i++) { // aLi[i].onclick=function(){ // alert(i);//每一个li的事件绑定了,但i的值却不会保存的,最后为8,点击每一个li都是弹出8 // } // } for(var i=0;i<aLi.length;i++) { (function(i){ aLi[i].onclick = function(){ alert(i);//每一个li的绑定点击的i的值都保存了下来 } })(i); } //上面是简化的方式 // function a(i) { // function b(){ // alert(i); // } // return b; // } // aLi[i].onclick=a(i); } </script> <style type="text/css"> li{ height:30px; background-color: gold; margin-bottom:10px; } </style></head><body> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> </ul></body></html>
第一种情况
第二种情况
2、私有变量计数器,外部无法访问,避免全局变量的污染
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>闭包的用途-私有变量计数器</title> <script type="text/javascript"> //匿名函数已经执行了一次,a变量存储了起来,count变量是bb函数的定义。 var count = (function(){ var a = 0; function bb() { a++; return a; } return bb; })(); alert(count());//弹出1 alert(count());//弹出2 var c = count(); alert(c);//弹出3 </script></head><body></body></html>
阅读全文
0 0
- 03.JavaScript语法中
- javascript中eval()函数语法
- Javascript中创建字符串的new语法和literal语法
- javascript中replace正则表达式语法
- javascript中replace的正则表达式语法
- JavaScript中基本概念的语法理解
- javaScript 语法
- javascript语法
- JavaScript 语法
- javascript语法
- Javascript----语法
- javascript语法
- JavaScript 语法
- JavaScript语法
- JavaScript语法
- JavaScript语法
- javascript语法
- JavaScript 语法
- 一个叫 team 的表,里面只有一个字段name, 一共有4 条纪录,分别是a,b,c,d, 对应四个球队,现在四个球队进行比赛,用一条sql 语句显示所有可能的比赛组合.
- 解决eclipse配置Tomcat时找不到server选项(Mac通用)
- 背景图片太大,显示不全
- 朋友圈
- 剑指offer---从上往下打印二叉树
- 03.JavaScript语法中
- 归并排序
- 执行mybatis数据库中存放的SQL
- c3p0数据库连接池
- 04.JavaScript语法下
- Only the Kotlin standard library is allowed to use the 'kotlin' package
- js 文件上传
- mozilla pdfjs跨域问题及压缩优化
- 01.Jquery介绍和基本用法