1:以下代码的输出结果是? 为什么

问题1
- a声明为1,a+++a可以分解为(a++)+a,a++优先级比
+高,a++先赋值再加入运算,a++=== 1。a=2因此1+2=3
2:以下代码的输出结果是? 为什么

问题2
- a+++b=(a++)+b,a++先赋值为1,然后自加。1+3=4
3:void 0和 undefined在使用场景上有什么区别?
-
undefined是一个全局属性,表示未定义或者定义了没赋值void 0是一个一元运算符,输入任何参数都会返回undefined -
undefined在低版本IE中能被重写,在ES5中是全局对象中的一个只读属性,不能被重写。但是在局部作用域中,可以被重写。非严格模式下,undefuned可以重写,严格模式不能重写。 - 用
void 0是为了防止undefined被重写而出现判断不准确的情况。
4

val
优先级是
typeof>+>>>||.typeof a结果是number,||左侧结果是number2,右侧是true。number2转换成boolean是true,直接返回左边的值number2

data
优先级:
==>&&>=
- var data = true && console.log('bb')
- 与运算符里,左边为真,返回右边的值。
console.log作为函数是没有返回值的,没有返回值则默认返回undefined。 - 结果是undefined。

Paste_Image.png
优先级是
||>=,先计算0||undefined,0转换为false,结果是undefined。

Paste_Image.png
优先级:
"()">+>=(!"world", !!"from here!!")先算括号里的,返回逗号后的值,!!转化为true。true+true转换成1+1 ,最后结论是2
4遍历数组,把数组里的打印数组每一项的平方

Paste_Image.png
5 遍历 JSON, 打印里面的值

Paste_Image.png