文章目录
一、下列说法错误的是()
- 当前域的 cookie 都可以通过 js 在当前域下获取
对于一些保密性较高的cookie后端可以通过设置HttpOnly标记cookie只能通过http传递,前端js无法读取;
二、for…in… ,Object.keys()和Object.getOwnPropertyNames()的区别:
是否遍历不可枚举的属性 | 是否遍历原型对象上的属性 | |
---|---|---|
for…in… | 否 | 是 |
Object.keys() | 否 | 否 |
Object.getOwnPropertyNames() | 是 | 否 |
三、下列说法正确的是()
- requestAnimationFrame(foo) 确保使浏览器在下一次重绘之前调用 foo 方法
- 把
window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在浏览器下一次重绘之前执行。
四、JavaScript 严格模式下有哪些不同?
- 禁止this关键字指向全局对象
"use strict"
function fs() {
console.log(this);
}
fs();
//undefined
- 不允许不使用 var 关键字去创建全局变量,抛出 ReferenceError
- 不允许对变量使用 delete 操作符,抛 ReferenceError
"use strict"
var x = 1;
delete x; //Uncaught SyntaxError: Delete of an unqualified identifier in strict mode.
- 不可对对象的只读属性赋值,不可对对象的不可配置属性使用 delete 操作符,不可为不可拓展的对象添加属性,均抛 TypeError
"use strict"
console.log(Object.prototype);
delete Object.prototype; //Uncaught TypeError
console.log(Object.prototype);
- 对象属性名必须唯一
- 函数中不可有重名参数
- arguments的限制
1)arguments本身不能被赋值 ,但是arguments[x]仍然可以
// 在使用strict之前
function func(a, b) {
arguments[0] = '0';
arguments[1] = '0';
return [a, b];
}
var res = func(1, 2);
console.log(res); // [ '0', '0' ]
// 在使用strict之后
'use strict';
function func(a, b) {
arguments[0] = '0';
arguments[1] = '0';
return [a, b];
}
var res = func(1, 2);
console.log(res); // [ 1, 2 ]
2)arguments不再追踪参数的变化,在函数内改变参数值,arguments依然指向旧值
3)禁止使用arguments.callee,匿名函数无法调用自己了
- 不可在if内部声明函数
五、给出下列打印值
typeof Object // 'function' 这是个构造函数。。。
typeof Object() // 'object' 这是个对象
'a' + 1 // 'a=1'
'a' - 1 // NaN
Function instanceof Object // true
Object instanceof Function // true
1.Function和Object的关系
总结一下:
var a = new A();
的作用是让a.__proto__ = A.prototype;
从而达到继承的目的。- 每个对象都会有
__proto__
属性,包括原型对象。同时一切函数也是对象,Function
函数构造一切构造函数。 Object
是一个构造函数,因此Object.__proto__ === Function.prototype
。注意:Object.prototype.__proto__ === null
。- 注意:
Function.__proto__ === Function.prototype
。
2.instanceof的作用
L instanceof R
instanceof的作用就是判断L的原型链上有没有R.prototype,即:L.__proto__.__proto__.__proto__.... ?= R.prototype
。