本文共 5685 字,大约阅读时间需要 18 分钟。
自增,自减运算只能针对变量 ,3++会报错
从左到右 ,如果先看到变量,则先取出变量中的值参与其它运算,变量中的值再+1或-1。如果先看到运算符,则先将变量中的值+1或-1再参与其它运算。 注意:变量在前会有两个值,变量本身的值,和变量自增或自减后的值。 例如:var a = 3; b = i++; 那么此时从左到右,先看到变量,就用变量本身的值参与运算,得到b的值为3,然后变量中的值再自增,得到a的值为4.规则:
(1)如果是number类型之间运算,直接运算。 (2)如果不是同类型之间的运算,则先转成数字,再运算。(转成功,直接运算,转失败,则转为NaN,运算结果也为NaN) (3)true转为1 false转为0 null转为0 ,然后参与运算。 (4)undefined NaN 结果一定是NaN 注:0除以非0的数,结果为0; 非0的数除以0,结果infinite(无穷); 0除以0,结果NaN。console.log(4 / 4); //1 console.log(4 / '4'); //1 console.log(4 / '4a'); //NaN console.log(4 / true); //4 console.log(4 / false); //infinite console.log(4 / null); //infinite console.log(4 / undefined); //NaN console.log(0 / 4); //0 console.log(0 / 0); //0 NaN
console.log(4 % 4); //0 console.log(4 % '4'); //0 console.log(4 % '4a'); //NaN console.log(4 % true); //0 console.log(4 % false); //4 NaN console.log(4 % null); //4 NaN console.log(4 % undefined); //NaN console.log(4 % 0); //NaN console.log(0 % 0); //NaN
console.log(4 + 4); //8 console.log(4 + '4'); //8 '44' console.log(4 + '4a'); //'44a' console.log(4 + 4 + ''); //'8' console.log(4 + true + '' + 4); //'54' console.log('' + 4 + 4 - 2); //42
规则:
(1)遵循上面的规则 (2)如果+两边有字符串,就连接成新的字符串;(特别注意,是加号两边有字符串,不是一个表达式里面有加号和字符串就要做字符串的连接)。console.log(4 + 4); //8 console.log(4 + '4'); //8 '44' console.log(4 + '4a'); //'44a' console.log(4 + 4 + ''); //'8' console.log(4 + true + '' + 4); //'54' console.log('' + 4 + 4 - 2); //42
规则
(1)相同类型比较,直接比较 (2)字符串比较,从左到右依次比较 (3)true转为1,false转为0,null转为0,再比较 (4)undefined NaN ,直接false。非真即假,非假即真
false , 0 ,‘’ ,undefined ,null , NaN 天然为假 !‘ ’ 结果为false如果&& 左边表达式的值为true时,返回右边表达式的值;
如果&&左边表达式的值为false时,发生短路,返回左边表达式的值。如果||左边表达式的值为true时,发生短路,返回左边表达式的值;
如果||左边表达式的值为false时,返回右边表达式的值。var i = 3; console.log(4 - 3 && (i = 5)); //5 console.log(i); //5 console.log(!(4 - 3) && (i = 6)); //false console.log(i); //5 console.log(0 % 3 === 0 || (i = 8)); //true console.log('100' < 2 || (i = 10));// 10 console.log(i); //10
// 1. 输出下列表达式的值。 // 1) (100>3)&&(‘a’>’c’) console.log(100>3 && 'a'>'c'); // false // 2) (100>3)||(‘a’>’c’) console.log(100>3 || 'a'>'c'); //true // 3) !(100<3) console.log(!(100>3)); //true // // 2. 构造一个表达式来表示下列条件: // // 1) number 等于或大于 90,但小于 100 // number >= 90 && number < 100 // // 2) ch 不是字符 q 也不是字符 k // ch != 'q' && ch != 'k' // // 3) number 界于 1 到 9 之间(包括 1 不包括 9),但是不 等于 5 // number >=1 && number < 9 && number != 5 // // 4) number 不在 1 到 9 之间 // number < 1 || number > 9 // 3. 判断这个字符是空格,是数字,是字母 var ch = '19'; // ch === ' ' || ch > 0 && ch < 9 || ch > 'a' && ch < 'z' || ch > 'A' && ch < 'Z' console.log(ch === ' ' || ch > '0' && ch < '9' || ch > 'a' && ch < 'z' || ch > 'A' && ch < 'Z'); //true // // 4. 有 3 个整数 a,b,c,判断谁最大,列出所有可能 // a>b && a>c // b>a && b>c // c>a && c>b // 5. 判断 year 表示的某一年是否为闰年,用逻辑表达式表示。 闰年的条件是符合下面二者之一: // 1) 能被 4 整除但不能被 100 整除 2) 能被 400 整除 //year % 4 === 0 && year % 100 !== 0 || year % 100 ===0 var year = 2018; console.log(year % 4 === 0 && year % 100 !== 0 || year % 100 ===0); // !(year % 4) && (year %100) || !(year % 400) var year= 2008; console.log(!(year % 4) && (year % 100) || !(year % 400));
一元(一目)! ++ - - +(正) -(负)
二元(二目) + - * / % 关系运算符 三元(三目) ?: 语法: 条件?语句:语句 当条件为true时,执行冒号前面的语句; 当条件为false时,执行冒号后面的语句。规则:先取 运算符左边变量的值 与 运算符右边的表达式的值 进行相应的 算数运算,最后将结果赋给左边的变量。
作用:用于创建对象
语法: new 构造函数() var o_number = number(); var o_str = string(); var o_boo = boolean(); var o_obj = object();作用:用于检测数据类型
就是已经封装好,可以直接用的函数。
判断括号中的表达式的值是否是 NaN,如果是 NaN, 则返回 true,否则返回 false
eval():将字符串强制转换成表达式并返回表达式的值
将字符串左边有效的数字部分,转为整数。如果第一个字符是非有效数字,则转为NaN,第二个参数用来限制第一个参数的进制范围。
(1)如果省略第二个参数或第二个参数为0,表示十进制。
(2)如果第二个参数为小于2或大于36,则结果为NaN。 (3)如果第一个参数不符合第二个参数的进制范围,则返回NaN。
将字符串左边有效的数字部分,转为小数,如果第一个字符是非有效数字,则转为NaN。
将有效数字字符串转为数字,如果其中有一个非有效数字,则转为NaN
1. 运算符两边加一个空格2. 语句结束加分号3. 如果在{}中缩进一个tab4. 小括号嵌套,加空格 ( ( ) )
转载地址:http://jvqzi.baihongyu.com/