无标题文章

JavaScript部分运算符和流程控制部分作业

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

  • var a = 1;
    console.log( a+++a );

A:输出结果为2。a++的结果还是为1,之后a的值变为2,所以结果相当于1+2 == 3

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

var a = 1;
var b = 3;
console.log( a+++b );

A:结果为4。
Q: void 0 和 undefined在使用场景上有什么区别?
A: 由于js中可以用undefined作为变量的名字,所以可能造成混淆。用void 0可以得到真正的“undefined”;

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

var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val)// number2
var d = 5;
var data = d ==5 && console.log('bb')
console.log(data)// true
var data2 = d = 0 || console.log('haha')
console.log(data2)// undefined
var x = !!"Hello" + (!"world", !!"from here!!");
console.log(x) //2

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

var arr = [3,4,5];

A:

function square(array) {
   for(let i = 0; i < array.length; i++){
      console.log(array[i]*array[i]);
   }
}
square(arr);  

Or

function square(array, fn) {
      for(let i = 0; i < array.length; i++){
            fn(array[i], i, array);
  }
}
square(arr,(x) => console.log(x*x));

Q:遍历 JSON, 打印里面的值 (难度**)

var obj = { name: 'hunger', sex: 'male', age: 28 }

A:

  function traversal(object, fn) {
    for(let key in object){
          fn(key, object[key]);//注意这里有个坑,因为key是字符串的形式,所以不能写为object.key的形式,而应该写为object[key].
   }
}

   traversal(obj, (key, value) =>console.log(`${key}: ${value}`));//这里是反点,不是普通的引号



你可能感兴趣的:(无标题文章)