运算符优先级:
在全部的运算符中,括号的优先级最高,赋值符号的优先级最低。
小括号 > 计算运算符 > 比较运算符 > 逻辑运算符 > 赋值符号
————————————————————————————————————————————————————————————数组
算术运算符(从左至右依次计算) -、+、 *、/、%、++、--、+=、-=、*=、%=、
注意点:
"+"只有两个做用: 数学运算和字符串链接(任何数据类型加字符串都是起链接做用)。
"%"的计算结果: 当被除数小于除数时,模的值就为被除数,即便被除数为0也不例外。
"/"的计算结果: 俩个number类型的值进行计算,若没法正常计算,得出结果 NAN ,好比0除以任何数等于NAN、
若没法得出具体值,则显示infinity(正无穷)或-infinity,好比1/0=infinity。spa
自增/自减的特性: 在没有表达式的时候,不管自增自减放变量前面仍是后面没有任何区别。
在有表达式的时候,自增自减放变量前面的,它比表达式的优先级高,堪比括号优先级。
例如:var a = 1; var b = a-- + --a; ==> b = 0;
+=、*=、/=、%=的特色:
当一个数加、减、除、模一个不小于1的数并赋给自身时的简写版。
若是右边是表达式,那么先算表达式,在和自身相计算,最后赋给自身。
——————————————————————————————————————————————————————————prototype
比较运算符 < 、> 、>= 、<= 、== 、===、!=
1).只要是用比较运算符比较两个值,得出的结果必定为Boolean值。
2).数字与数字直接比较大小;
3).字符串与字符串是比较的ascii码;
(字符串比较先用字符串的第一个字符进行比较,谁的ascii码大谁就大,若第一个字符相等则比较第二个字符,依次类推。比较运算符隐式的将字符转换成ascii码值)
注意点:
'10'读做:字符串一和零,‘10’< '8',比较的是字符1和字符8的ascii值
————————————————————————————————————————————————————————————对象
逻辑运算符
逻辑运算符特性:
逻辑运算符的左右两边能够是一个值、一个表达式或执行语句,执行语句没有布尔值说法,
在进行逻辑以前,它会先判断左边的值或表达式的结果转换成布尔值的状况。
逻辑运算的结果为原来的值或表达式的结果。
"&&"与运算符
当只有一个与运算符时,先判断左边的布尔值的状况,
若为假,直接返回左边的原值或表达式结果,
若为真,不对右边进行布尔值判断,直接返回右边的原值或表达式结果。
当有两个及以上的与运算符时,先判断最左边的布尔值,
若为真,则继续判断下一个的布尔值,以此类推,直到遇到为假的,
就返回该值或表达式结果,若全为真,则返回最右边的值或表达式结果。
与运算符的应用:短路语句(利用逻辑运算符先判断左边的布尔值,才决定要不要执行右边的语句)ci
"||"或运算符: 和与运算符的逻辑判断相似,可是当遇到布尔值为真时,
就中止后面的判断,返回该原值或表达式。原型链
"!"非运算符: 将一个值或表达式结果转换成布尔值,而后再取反。获得的结果为布尔值。
undefined、null、NaN、0、""、false 其结果为false,其余的都为true。
________________________________________________________________________________________字符串
if语句
if和else if的区别:多个if语句都会判断,else if语句只要知足了,后面的就再也不判断。
else和else if的区别: else if指一个明确的区间,
else是衔接上面的区间的补集,当上面有不少if或else if时,将他们的区间加起来,而后取补。
while语句
do-while语句
switch-case语句 ————————> 用对象或类数组代替switch方法
switc的括号写条件,case后面是和条件比较的值,这个值能够是任意类型;
注意点: 当swicth匹配到某一个case时,它后面的其余case语句也会执行。
因此应在每一个case后面加上break(break只能用于循环语句中,不然会报错)。
利用这个注意点,能够简化当多个case都实现同一功能时的代码量。
————————————————————————————————————————————————————————————
for循环效率提高:当循环数组或类数组时,将长度提取出来放在一个变量中,
达到对长度值提取一次但应用到整个循环。
当在循环中修改数组或类数组长度,可用如下方法来解决
在单一var模式下将获取长度的变量也放在循环中for(i = 0, max = array.length;i < max; i ++){}。
for in循环:用来遍历非数组的对象。
当遍历对象属性来过滤遇到的的原型链的属性时,使用hasOwnProperty()
if(Object.prototype.hasOwn.call(对象引用名,prop)){}原型