运行结果判断题目

作者: puxiaotaoc | 来源:发表于2018-09-16 12:09 被阅读7次
console.log(typeof true === 'boolean'); // true
console.log(typeof NaN === 'number'); // true
console.log(typeof undefined === 'undefined'); // true
console.log(typeof null === 'null'); // false
console.log(NaN === NaN); // false
console.log(null == undefined); // true
console.log(null === undefined); // false
// 任何与NaN进行运算的结果均会为NaN,NaN与自身不相等(NaN不与任何值相等)
console.log(NaN == NaN); // false
var a =1;
function test(b){
   b=2;
   b++;
   a++;
}
test(a);
console.log(a); // 2
function foo(num){
   console.log(num);
   num++;
   var num =1;
   console.log(num);
}
foo(1); // 1 1
var a = "1" + 1;
var b = "11" > 2;
var c = "11" > "2";
console.log(a); // '11'
console.log(b); // true
console.log(c); // false

原始类型的非相等比较:先转换为数值再比较,对于对象要先执行valueOf后执行toString;

var x = [2];
x > '11' // true
// 等同于 [2].valueOf().toString() > '11'
// 即 '2' > '11'
// 两个字符串先比较第一个码点'2'>'1'

x.valueOf = function () { return '1' };
x > '11' // false
// 等同于 [2].valueOf() > '11'
// 即 '1' > '11'
for (i = 0, j = 0; i < 10, j < 6; i++, j++) {
  k = i + j;
}
console.log(k); // 10
var a = 0 && false || 1 && 2;
console.log(a); // 2
console.log(1>2>3,3>2>1);  // false false
console.log((function(){}) instanceof Object,typeof null); // true "object"
function foo(a, b) {
   arguments[0] = 2;
   arguments[1] = 0;
   console.log(a, b);
}
foo(1); // 2 undefined
// 跳台阶问题,一次只能跳1个、2个或 3个台阶
function jieti(n) {
   if (n == 1) {
      //jieti(1)=1
     return 1;
   }
   else if(n == 2) {
      //jieti(2)=2
     return 2;
   }
   else if(n == 3) {
      //jieti(3)=4
    return 4;
  }
  return jieti(n - 1) + jieti(n - 2) + jieti(n - 3);
}
console.log(jieti(10)); // 274
const bar = {};
function foo(){
  console.log(this===bar)
}
const bingo = foo.bind({});

foo(); // false
foo.apply(bar); // true
bingo(); // false
bingo.apply(bar); // false 
// promise会立即执行的
setTimeout(function() {
    console.log(4);
  }, 0);
  new Promise(function(resolve) {
    console.log(1);
    for (var i = 0; i < 10000; i++) {
      i = 9999 && resolve();
    }
    console.log(2);
  }).then(function() {
    console.log(5)
  });
  console.log(3); // 1 2 3 4 5
// js浅拷贝
(function(e) {
    var a = {
      x: 1
    }
    var b = a;
    b.y = '2a';
    console.log(a.x + a.y + a.z);
  })() // 12aundefined

参考链接:
JS的比较运算符,数值自动转换笔记

相关文章

网友评论

    本文标题:运行结果判断题目

    本文链接:https://www.haomeiwen.com/subject/imkxnftx.html