南通网站建设培训,php网站开发软件是什么,深圳宝安商城网站建设公司,安徽网新科技怎么建设网站目录
一、选择题 1、执行下列选项的程序#xff0c;输出结果不是Window对象的是#xff08;#xff09; 2、以下哪些代码执行后 i 的值为10#xff1a;
二、编程题 1、判断 val1 和 val2 是否完全等同 2、统计字符串中每个字符的出现频率#xff0c;返回一个 Object输出结果不是Window对象的是 2、以下哪些代码执行后 i 的值为10
二、编程题 1、判断 val1 和 val2 是否完全等同 2、统计字符串中每个字符的出现频率返回一个 Objectkey 为统计字符value 为出现频率①不限制 key 的顺序②输入的字符串参数不会为空③忽略空白字符 一、选择题
1、执行下列选项的程序输出结果不是Window对象的是
A、
setTimeout(function(){console.log(this);},1000);
B、
function Star(){console.log(this);}new Star();
C、
var o {sayHi:(){console.log(this);}}o.sayHi();
D、
(function(){console.log(this);}());
正确答案B
解析
1箭头函数不会与this进行绑定其this指向取决于该箭头函数同级作用域的this指向又由于对象不能形成自己的作用域因此其作用域为全局作用域this指向Window对象
2
①默认绑定指向window例如fn()实际上是window.fn()window调用指向window
②隐式绑定obj.fn() 指向obj是obj在调用
③显示绑定call()、apply()、bind()要指向谁就写在()里面
④new绑定指向new创建的对象new fn() 2、以下哪些代码执行后 i 的值为10
A、
let i 1 {valueOf() { return 9; }
};
B、
let i 0;
new Array(10).forEach(() {i;
});
C、
let i parseInt(0xA);
D、
let i 5;
function a(i) {i * 2;
}
a(i);
正确答案AC 你的答案BCD
解析
1A选项{ valueOf() { return 9; } } 有一个匿名对象
①该对象有一个名为 valueOf 的方法对象与数字相加时对象调用自身的 valueOf 方法转换为数字故输出 i 1 9 10;
②当对象没有提供valueOf方法时对象与数字都转换为字符串相加1 {} 1[object Object]
③valueOf() 在尝试加法、乘法之类的会转换成原值转换成原始值有两种模式 偏字符串(首先调用tostring 如果不是原始值 会调用valueof) 偏数值(首先调用valueof 如果不是原始值接着调用tostring)
2B选项输出值为0因为forEach方法在数组元素为空时会跳过执行回调函数相当于此选项回调函数并未执行
3C选项在没有指定基数的情况下如果字符串以0x或者0X开头, 则基数是16 (16进制)。
相当于let i parseInt(0xA16)
4D选项i 是形参属于局部变量执行 a(i) 后返回undefine不影响全局变量 i 的值 二、编程题
1、判断 val1 和 val2 是否完全等同
解析
1法一Object.is()
function identity(val1, val2) {return Object.is(val1,val2)
}
2法二
function identity(val1, val2) {return val1 val2
} 2、统计字符串中每个字符的出现频率返回一个 Objectkey 为统计字符value 为出现频率 ①不限制 key 的顺序②输入的字符串参数不会为空③忽略空白字符
输入描述hello world 输出描述{h: 1, e: 1, l: 3, o: 2, w: 1, r: 1, d: 1}
解析
1法一filter过滤空格forEach遍历字符串元素
scriptlet str hello worldfunction count(str){let strArr str.split().filter(e{return ee.trim()})const obj {}strArr.forEach(element {if(obj[element]){obj[element]}else{obj[element] 1}});return obj}console.log(count(str));
/script
2法二利用replace和正则将str存在的空格去除利用for of 迭代可迭代对象
scriptlet str hello worldfunction count(str){let strArr str.replace(/\s/gi,)const obj {}for(let i of strArr){if(obj[i]){obj[i]}else{obj[i] 1}}return obj}console.log(count(str));
/script