标签:ons 输出 res 操作符 const 第一题 指针变量 white 访问
第一题:赋值,调用
var a, b;
(function () {
alert(a);
alert(b);
var a = b = 3;
alert(a);
alert(b);
})();
alert(a);
alert(b);
解析: var a=b=3 相当于 var a = 3;b = 3;b是全局的
第二题: 异步任务
console.log(1); let a = setTimeout(() => { console.log(2) }, 0); console.log(3); Promise.resolve(4).then(b => { console.log(b); clearTimeout(a); }); console.log(5);
答案: 1 3 5 4
解析:
第三题:
var str = "stiabsstringapbs"; var obj = {}; for (var i = 0; i < str.length; i++) { var key = str[i]; if (!obj[key]) { obj[key] = 1; } else { obj[key]++; } } var max = -1; var max_key = ""; var key; for (key in obj) { if (max < obj[key]) { max = obj[key]; max_key = key; } } alert("max:" + max + " max_key:" + max_key);
答案: max:4 max_key:s
解析:
第四题:(--运算符)
function out(x) { var temp = 2; function inside(y) { document.write(x + y + (temp--)); } inside(5); } out(3);
答案: 10
解析: 如果该运算符作为后置操作符,则返回它递减之前的值。如果该运算符作为前置操作符,则返回它递减之后的值。
第五题:(构造函数)
var F = function () {}; Object.prototype.a = function () {}; Function.prototype.b = function () {}; var f = new F();
答案: f 能取到a,但取不到b
解析:
第六题:
function test() { var n = 4399 function add() { n++ console.log(n) } return { n: n, add: add } } var reslut = test() var reslut2 = test() reslut.add() reslut.add() console.log(reslut.n) reslut2.add()
答案: 4000 4001 4399 4000
解析: 在第三个,这里{n:n}是对变量n里的值进行缓存,而不是本身n这个指针变量,这样生成add的时候n指向的值是多少{n:n}里的值就是多少
标签:ons 输出 res 操作符 const 第一题 指针变量 white 访问
原文地址:https://www.cnblogs.com/sad-dog/p/13251418.html