js语句

1.别忽略结尾的 ‘; ’ 会影响压缩后的代码
2.if条件句后即使只跟一条语句 还是建议加上‘{}’
3.用var定义的变量将成定义该变量的作用域中的局部变量。
4.若定义的变量准备用来保存对象,建议将变量初始化为null;

var a = "110"; Number(a); //转换字符串时比较复杂且不合理 eg Number(''); >>0 parseInt(a); //推荐使用parseInt(string, radix)//字符串 进制parseInt('') >>NaN //建议在任何情况都指定第二参数 (10)默认就是10 PS:parseFloat() 只解析十进制

变量声明需要注意变量提升
(function(){ console.log(a)//a is not defined }) (function(){ var a; console.log(a)//a is undefined }) (function(){ var a = 1; function test(){ console.log(a)//a is undefined此处由于变量提升 var a 会再函数的最前面声明 var a; } })

String 字符串
双引号与单引号并无区别 并不存在 单引号解析会比双引号解析快
字符字面量: console.log("You \t me are singing!") \t 制表》》Youme are singing!; \n 换行 \b 空格 \r 回车字符串特点:字符串不可变 null 和 undefined 没有 toString() 方法;

对象:一组数据和功能(属性\方法)的集合 对象和通过执行 new 操作符跟要创建的对象类型的名称来创建;
var o = new Object(); //不传递参数时可以省略后面的小括号; var o = new Object; // 有效,但不推荐省略圆括号

运算符# 1.一元运算符
var i = 0; var a = i++; //>>a = 0 ; i = 1; var b = ++i; //>>b = i = 2; 对非数值 进行 一元 + 操作时 会像 Number() 一样对该值进行转换 效率比较高 var a = "11"; //>>string'11' var a = +a; //>>number11 布尔值 会被转换为 0(false)跟1(true)字符串值会先进行解析 先调用它们的 valueOf() 或 toString(); 再转换得到的值; var a = ""; a = +a; //>> 0执行的操作 Number("") = 0;

2.位操作符
a.按位非:~操作符的负值减1 ~2015 》》-2016b.按位与:& var rs = 25 & 3; //>>1 25 = 1 1001; 3 = 0 0011; and = 0 0001; c.按位或 | var result = 25 | 3; //》》 27; d.按位异或 ^e.左移 << 二进制:var a = 10; var b = a<<5; //>>1000000f.有符号的右移>>(保留符号位 即正负号标记) 与左移作用相反g.无符号右移>>>

3.布尔操作符
a.逻辑非! b.逻辑与 && c.逻辑或 ||

4.乘性操作符
a.乘法 * b.除法 / c.求模(取余) %

5.加性操作符
a.如果有一个操作数是NaN 则结果是NaN b.正无穷+正无穷 = 正无穷 b.负无穷-负无穷 = 负无穷 c.正无穷+负无穷 = NaN d.若有一个操作符是字符串 则结果是字符串拼接

关系操作符
<><=>======两个操作数 都是字符串比较两个字符串对应的字符编码 a."Brick" < "alphabet"true b."23" < "3"true; c.null == undefinedtrue d.null === undefined false

条件操作符
a?b:c如果a成立 则结果为b 否则为 c;

逗号操作符
var num = (1,2,3,4,5,6)//6

------邪---------恶-------的--------分---------割---------线------
label 语句: 使用label语句可以在代码中添加标签
var num = 0; outPoint: for (var i = 0 ; i < 10 ; i++){ for (var j = 0 ; j < 10 ; j++){ if( i == 5 && j == 5 ){ break outPoint; //跳出循环 并跳到outPoint 继续执行. } num++; } } alert(num); //55/****************************/var num = 0; outPoint: for (var i = 0 ; i < 10 ; i++){ for (var j = 0 ; j < 10 ; j++){ if( i == 5 && j == 5 ){ break outPoint; //跳出循环 并跳到outPoint 继续执行. } num++; } } alert(num); //95break,continue + label 可以精准返回到你想要的程序位置

with 语句 :作用将代码的作用域设置到一个特定的对象中 目的 简化多次编写同一对象的工作
var qs = location.search.substring(1); var hostName = location.hostname; var url = location.href; /********使用with后******************/ with(location){ var qs = search.substring(1); var hostName = hostname; var url = href; }

PS:严格模式下不允许使用with语句 否则视为语法错误
Reason:大量使用with语句会导致性能下降,同时也给调试代码造成困难 因此不建议使用 with;
【js语句】2016.12.18

    推荐阅读