运算符
和C中类似,加减乘除
浮点数的运算会有精度问题(因为系统转成2进制来算的)
不要直接判断两个浮点数是否相等
逻辑中断
ifelse/while/switch/for和C语言一样
操作符左右最好隔一个空格
console.log(1&&0);
console.log(1 || 0);
console.log(!0);
console.log(!100);
console.log(!1);
数组稍有不同
var str = new Array(); // 不常用
var str = []; // 常用
var str = [1, 12, 'hello', true]; //这是合法的
console.log(str); // 可以直接输出整个数组
console.log (str[2]);
//str.length是数组长度,可以改的,使用这个来检测数组元素个数更合适
修改数组长度两方法
var str = [1, 2];
// 以下两种
str.length = 3;
str[2] = 0;
函数
1.声明函数
function 函数名() {
}
//
var 变量名 = function (){
}
2.调用函数
3.arguments
在不清楚参数个数时使用
存储了传递过来的所有实参,实质是一个伪数组
可以直接把数组作为一个参数对象传递进去,也可以return出来
作用域
和C类似,但多一个作用域链
调用的函数里面有定义在函数之外的变量且外部多个时,找最近一级的一种机制
预解析
浏览器的js引擎把所有的var和function提升到当前作用域的最前面——预解析,之后才是代码执行
- 变量提升
只把变量的声明提升,不提升赋值或者其他 - 函数提升
把函数声明提升