Open yym-yumeng123 opened 7 years ago
console.log(1+1); //2,因为1的类型是Number
console.log("2"+"4"); // 24,因为如果两个操作数都是字符串,则拼接起来
console.log(2+"4"); //24,因为如果只有一个操作符是字符串,则将另一个操作符转换为字符串,然后拼接
console.log(+"4"); //4, 因为+只是一个操作数,只有一个数字参数的时候返回其正数值"4"转化为4
var a = 1;
a+++a;
typeof a+2;
// a+++a等于3,typeof优先级是16,+优先级13,
先执行typeof3返回"number"是一个字符串值,字符串与数值做加法,
数值会被转化成字符串然后与另一字符串拼接,得到"number2"
var a = 1;
var b = 3;
console.log( a+++b );
// 4 ,首先++的优先级比+要高,所以先执行a++又a++自身是先执行后加一,所以是1+3结果为4
var arr = [3,4,5]
var arr = [3,4,5]
for(var i = 0; i < arr.length; i++){
console.log(arr[i]*arr[i])
}
for-in语句
var obj = {
name: 'hunger',
sex: 'male',
age: 28
}
for(key in obj){
console.log(key+":"+obj[key])
}
//结果name:hunger sex:male age:28
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val) //typeof > + > > > || ,所以先计算typeof a 是'number'然后计算+,为number2根据短路操作,'number2'为true
var d = 5; var data = d ==5 && console.log('bb') console.log(data) // 优先级:== > && > = ,所以先判断== 为true, 然后与操作,看后面返回console,log("bb"),在赋值给data
var data2 = d = 0 || console.log('haha') console.log(data2) //undefined
var x = !!"Hello" + (!"world", !!"from here!!"); console.log(x) // 优先级:逻辑非取反大 ,非空字符串都为true,是数字1 !!就是Boolean()的作用, 因为逗号操作符取后面一个值 所以是1+1,结果是2
1. JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么?
Number String Boolean
Object
一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。Undefined Null
2. typeof和instanceof的作用和区别?
作用都是类型识别
typeof操作符
instanceof
3. 如何判断一个变量是否是数字、字符串、布尔、函数
typeof
操作符4. NaN是什么? 有什么特别之处?
任何涉及NaN的操作都会返回NaN
NaN与任何值都不相等,包括NAN本身
5. 如何把非数值转化为数值?
Number()
parseInt()
parseFloat()
6. ==与===有什么区别
==
表示相等操作符,先转换后比较,转换之后比较相等则返回true===
表示全等操作符,仅比较而不转换,未经转换就相等返回true7. break与continue有什么区别
break和continue语句用于循环中准确控制代码的执行.其中,break语句会立即退出循环,强制执行循环后面的语句.而continue语句虽然也是立即退出循环,但退出循环后会从循环的顶部继续执行.
结果4是次数,break语句的执行,导致了循环在num再次递增之前就退出了了.(跳出整个循环体)
结果为8,说明执行了8次,当变量i=5时,循环会在num再次递增之前退出,但接下来执行下一次循环,即i=6的循环,于是,循环再次执行了(跳出一次循环体)
8. void 0 和 undefined在使用场景上有什么区别