8.30做JS的题目
2021-01-06 22:28
标签:读写 mic number 它的 相同 就是 type 变量 flash 1.以下代码执行后,console 的输出是? let x = 10; 抛出 ReferenceError 2. 程序的输出是什么? bar bar undefined bar 1.第一个this.foo输出bar,因为当前this指向对象myObject。 2.第二个self.foo输出bar,因为self是this的副本,同指向myObject对象。 3.第三个this.foo输出undefined,因为这个IIFE(立即执行函数表达式)中的this指向window。 4.第四个self.foo输出bar,因为这个匿名函数所处的上下文中没有self,所以通过作用域链向上查找,从包含它的父函数中找到了指向myObject对象的self。 3.下列不属于javascript中查找元素的方法的是() 1.根据id获取元素 document.getElementById("id属性的值"); 2.根据标签名字获取元素 document.getElementsByTagName("标签的名字"); 3.根据name属性的值获取元素 document.getElementsByName("name属性的值"); 4.根据class属性获取元素 document.getElementsByClassName("类样式的名字"); 5.根据css路径获取元素 (获取一个) document.querySelector("css路径"); 6.根据css路径获取元素 (获取一组) document.querySelectorAll("css路径"); 4.下面这段代码: 控制台的输出结果是: 5.关于跨域问题下面说法正确的是?() A可以利用flash的http请求,来处理跨域问题 B通过iframe设置document.domain可以实现跨域 C一般情况下,m.toutiao.com可以ajax请求www.toutiao.com域名下的接口并获得响应 D通过jsonp方式可以发出post请求其他域名下的接口 第一种方式:jsonp请求;jsonp的原理是利用 第二种方式:document.domain;这种方式用在主域名相同子域名不同的跨域访问中 第三种方式:window.name;window的name属性有个特征:在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置。 第四种方式:window.postMessage;window.postMessages是html5中实现跨域访问的一种新方式,可以使用它来向其它的window对象发送消息,无论这个window对象是属于同源或不同源。 第五种方式:CORS;CORS背后的基本思想,就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功还是应该失败。 第六种方式:Web Sockets;web sockets原理:在JS创建了web socket之后,会有一个HTTP请求发送到浏览器以发起连接。取得服务器响应后,建立的连接会使用HTTP升级从HTTP协议交换为web sockt协议。 6.以下对闭包(closure)理解正确的有 ()ABCD A闭包是指有权访问另一个函数作用域中变量的函数; B函数内再嵌套函数; C内部函数可以引用外层的参数和变量 D参数和变量不会被垃圾回收机制回收 7.下面结果为不为真的表达式是:() A.null == undefined Object.prototype; B.[1,2,3].splice(1,1,1) == [2] C.let Mi = new Function();Mi.__proto__.__proto__ == Object.prototype; D.‘1‘ === true A选项就是对的 B选项改变了原来的数组返回的是【2】比较的时候地址不一样所以是flase CObject.prototype只是一个普通对象,它是js原型链的最顶端Object.prototype只是一个普通对象(普通对象没有prototype属性,所以值是undefined), Object.prototype.__proto__=== null;//true Object.prototype.prototype === undefied;//true js中每一个对象或函数都有属性,但是只有函数对象才有prototype属性。 //函数对象 function Person() { } // 普通对象 var obj = {}; obj.__proto__ === Object.prototype;//true obj.prototype === undefined;//true Person.__proto__ === Function.prototype;//true Person.prototype !== undefined;//true Function.prototype是个特例,它是函数对象,但是没有prototype属性。其他所有函数都有prototype属性。 Function.prototype.prototype === undefined;//true 函数也是对象,因为Function.prototype__proto__指向Object.prototype。 typeof Function.prototype.__proto__) === "object";//true Function.prototype.__proto__=== Object.prototype;//true 内置的Function也是一个函数对象,它是通过自己来创建自己的。 Function.__proto__=== Function.prototype;//true D.选择前面是字符串后面是布尔型所以false 8.以下表达式不会出现错误的有() A.2.toString() B.2..toString() C.2 .toString() D.(2).toString() 整数调用toString就会报错。 2..toString()因为连续的两个小数点不符合number的格式规则,第二个小数点才会被解析为调用方法 BCD 9.当用户打开一个网页时,想一直停留在当前打开的页面,禁止页面前进和后退,以下正确的是( AD ) A.window.history.forward(1); B.window.history.back(1); C.window.history.go(-1); D.window.history.forward(-1); history.back() 方法加载历史列表中前一个 URL。 这等同于在浏览器中点击后退按钮 8.30做JS的题目 标签:读写 mic number 它的 相同 就是 type 变量 flash 原文地址:https://www.cnblogs.com/smhyu/p/13585084.html
let foo = () => {
console.log(x);
let x = 20;
x++;
}
foo();var myObject = {
foo: "bar",
func: function() {
var self = this;
console.log(this.foo);
console.log(self.foo);
(function() {
console.log(this.foo);
console.log(self.foo);
}());
}
};
myObject.func();
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 console.log(1);//同步
2 let a = setTimeout(() => {console.log(2)}, 0);//回调
3 console.log(3);//同步
4
5 Promise.resolve(4).then(b => {
6 console.log(b);//异步
7 clearTimeout(a);
8 });
9 console.log(5);//同步