饥人谷技术博客

JavaScript数据类型-运算符-流程控制语句

2017-08-02  本文已影响0人  liushaung

JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么?

typeof和instanceof的作用和区别?

typeof

instanceof

如何判断一个变量是否是数字、字符串、布尔、函数

NaN是什么? 有什么特别之处?

如何把非数值转化为数值?

==与===有什么区别

break与continue有什么区别

void 0 和 undefined在使用场景上有什么区别

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

  console.log(1+1); 
  // 2 当+两边都是数字表示两个数字相加   
  console.log("2"+"4");
  // "24" 当+两边有一个是字符串时表示字符串连接  
  console.log(2+"4"); 
  // "24" 同上
  console.log(+"4");
  // 4 当+放在一个值前面时,表示将这个值转换为数值

以下代码的输出结果是?

  var a = 1;  
  a+++a;  
  typeof a+2;
  // "number2"
  // 解析:(a++)+a -> 3; (typeof a)+2 -> "number2"

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

  var a = 1;
  var b = 3;
  console.log( a+++b );
  // 4, 因为++的优先级高于+,所以(a++)+b,a++返回a的值,所以:1+3=4

遍历数组,把数组里的打印数组每一项的平方

 var arr = [3,4,5]
 for (var i = 0, len = arr.length; i < len; i++) {
   console.log(arr[i] * arr[i])
 }

遍历 JSON, 打印里面的值

var obj = {
  name: 'hunger', 
  sex: 'male', 
  age: 28 
}
for (var x in obj) {
  console.log(obj[x])
}

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

  var a = 1, b = 2, c = 3;
  var val = typeof a + b || c >0
  console.log(val) 
  // "number2" ,解析:typeof的优先级高于+ ,所以typeof a + b =》"number2",因为当||左边的值为true时返回这个值,而除了空字符串外所有字符串的布尔值为true,所以直接返回"number2"

  var d = 5;
  var data = d ==5 && console.log('bb')
  console.log(data)
  // undefined, 解析:d == 5为true,当&&左边的值为true时返回它右边的值,而console.log的返回值为undefined。

  var data2 = d = 0 || console.log('haha')
  console.log(data2)
  // undefined, 解析:d = 0返回值为undefined,它的布尔值为false,当||左边的值为false时返回它右边的值,而console.log的返回值为undefined。
  
  var x = !!"Hello" + (!"world", !!"from here!!");
  console.log(x)
  // 2, 解析:!表示取反,!!相当于将一个值转化为布尔值,非空字符串的布尔值为true,所以!!"Hello"=》true;,操作符返回后面的值,同上可知!!"from here!!"=》true;当+两边的值为布尔值时,它会将他们转换为数值,true转换为数值得到1,所以x = 1 + 1.
上一篇下一篇

猜你喜欢

热点阅读