#js再学习笔记
##基本
1.js严格区分大小写
2.js末尾的分号可加,也可不加
3.六种数据类型(使用typeof来检验数据的类型) `typeof`
- undefined: `var name;` ------就是已定义未赋值或者未定义而使用**针对变量来说**,占据一个变量的位置而不使用。
- boolean-------布尔类型
- string: `var name="zhangsan"; var englishname='tom';` -----字符串类型,单引号,双引号没什么区别。
- number ----整形和浮点型。 js里边最大的数字`Number.MAX_VALUE`最小数字`Number.MIN_VALUE`,无限大`infinity`
- null ---是一个对象。可以当做占位符使用`var people=null;`
##运算
4.`==` :值比较 ; `===` :值和数据类型都比价
5.`+` :当两个参数是数字做加法运算。当两个参数有一个是字符串类型,做连接。
6.`&&`:js中的与运算,在js内部进行数据类型转换。最后的结果并不是布尔类型而是参与运算中参数 的一个值。 `1&&2`结果为true(其实是2); `0&&5`结果为false(其实是0,0已经决定结果,把右边给短路了) `""&&"hello"`结果为false(其实结果为""空字符串)
##流程
7.for循环:可以有四种写法 a.正规的; b、`var i=0;for(;i<3;i++)`;c.i++在里边的`var i=0;for(;i<4;){i++}`;d、`var i=0;for(;;){}`判断和i增加在里边
8.**breake**,跳出本层循环,就不执行本层后边的循环了。但是break 2这种跳出外边循环的语法是php的语法。js跳出外边的循环得设置标签。`<script>
bianjie:
for(i=0;i<3;i++){
console.log(i);for(j=100;j>90;j--){
console.log(j);
if(j==95){
break bianjie;
}
}
}
</script>`
9.continue :跳出本次循环,继续后边的循环,跳出外边的也是写标签。
##函数
1.函数,就是具有一定功能的代码的封装。
2.js函数如果在定义的时候没有参数`function talk(){ alert("hello");}` 但是`talk(liming,5)`调用了参数。可以根据arguments函数内部属性获得参数信息。arguments是个数组,也是对象,对象里边有数组的成分。
`var name=arguments[0]`name即使liming。 可以根据arguments.length判断参数的个数
3.return :a、返回具体信息; b、结束函数的执行;c,可以返回一个函数
`function a(){ var name="aa"; function b(){ } return a; }`当var c=a();其实就是b函数的引用。
4.全局变量与局部变量。在js中在任何地方,如果不使用var定义变量的话就是全局变量。在函数内部使用var定义的变量是局部变量。**全局变量的其实就是window的属性,使用firebug打开DOM查看即可。**
5.匿名函数自调用。----匿名函数直接声明并调用`(function(){ alert("hello");})();`以这种方式执行函数,函数内部的一切信息在函数执行完成之后会被销毁。匿名函数的另一种方式`var f1=function(){alert("ddd")}`