牛客网题源(JavaScript)

1.以下不属于JavaScript中的数据类型的选项是( C )
A.Undefined B.Number C.Interface D.Symbol
== 基本类型有:String Number Boolean Null Undefined Symbol(ES6新增-表示独一无二的值) 引用数据类型:Object Array Function ==

2.以下代码执行后,console 的输出是( A )

function Foo(){
	console.log(this.location);
}
Foo();
A.当前窗口的 Location 对象   B.undefined   C.null   D.TypeError

3.打开名为 “window2” 的新窗口的 JavaScript 语法是()

window.open("http://www.w3school.com.cn","window2")

4.JavaScript中常用符号的含义
== * :出现零到多次
+: 出现一到多次
?:出现零次或者一次
. : 除了\n以外的任意字符
{n} : 出现n次
{n,} : 出现n到多次
{n,m} : 出现n到m次
var reg=/^0.2$/; //以0开头,以2结尾,中间可以是\n以外的任意字符 ==

5.有以下ES6代码

function * gen() {
	yield 1;
	yield 2;
	yield 3;
}

下面选项描述正确的是哪个( C )
A.gen()执行后返回2
B.gen()执行后返回undefined
C.gen()执行后返回一个Generator对象
D.gen()执行后返回1
== function声明 (function关键字后跟一个星号)定义了一个生成器函数 ( generator function ),它返回一个 Generator 对象.
也可以定义生成器函数 使用构造函数 GeneratorFunction 和一个 function*expression ==

6.以下 javascript 代码,在浏览器中运行的结果是( 首先全部输出first,然后全部输出second )
在这里插入图片描述
== JavaScript 是单线程的,setTimeout 设置的是异步任务,会放在 macrotask 里面,等待执行栈的代码执行完毕之后才会执行 macrotask 里面的异步任务,所以这里会等待 for 循环执行完毕才会执行定时器设置的任务。 ==

7.如何遍历下面的 my_data 对象( for(var key in my_data) {} )

var my_data={a:’Ape’, b:’Banana’, c:’Citronella’};

8.关于 this 的工作原理
this有四种情况!
== a.当在函数调用的时候指向widow
b.当方法调用的时候指向调用对象
c.当用apply和call上下文调用的时候指向传入的第一个参数
d.构造函数调用指向实例对象 ==

9.说明以下函数是否可以执行( 类型错误 )

(function() {
	var x=foo();
	var foo=function foo() {
		return "foobar"
	};
return x;
})();

10.以下代码执行后,array 的结果是 [,2,3,4]

let array = [,1,,2,,3];
array = array.map((i) => ++i)

11.JavaScript中如何实现跨域
== a. jsonp请求;jsonp的原理是利用script标签的跨域特性,可以不受限制地从其他域中加载资源,类似的标签还有img
b. document.domain;这种方式用在主域名相同子域名不同的跨域访问中
c. window.name;window的name属性有个特征:在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置.
d. window.postMessage;window.postMessages是html5中实现跨域访问的一种新方式,可以使用它来向其它的window对象发送消息,无论这个window对象是属于同源或不同源.
e. CORS;CORS背后的基本思想,就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功还是应该失败.
f. Web Sockets;web sockets原理:在JS创建了web socket之后,会有一个HTTP请求发送到浏览器以发起连接.取得服务器响应后,建立的连接会使用HTTP升级从HTTP协议交换为web sockt协议. ==

12.以下代码的输出结果是 Error

var f = function g() {
	return 23;
};
typeof g();

== 在 JS 里,声明函数只有 2 种方法:
第 1 种: function foo(){…} (函数声明)
第 2 种: var foo = function(){…} (等号后面必须是匿名函数,这句实质是函数表达式) ==

13.angularjs1中的$apply()的作用是( 使方法生效 )

14.javascript的数据类型:
== 基本数据类型:String Number Boolean Null Undefined Symbol(ES6新增-表示独一无二的值)
复杂数据类型:Object Array Function RegExp Date Error
全局数据类型:Math ==

15.javascript原始数据类型
== 原始类型(Primitives) Null Undefined Boolean Number String Symbol
内置类型(Built-in) Null Undefined Boolean Number String Object Symbol ==

16.描述javascript内部对象
== History 对象包含用户(在浏览器窗口中)访问过的 URL
Location 对象包含有关当前 URL 的信息
Window 对象表示浏览器中打开的窗口
Navigator 对象包含有关浏览器的信息 ==

17.给网页添加javascript的方式有
== 使用script标签,将javascript代码写到script之间
添加外部javascript文件
使用行内javascript ==

18.那些方法会返回一个数组
== Object.keys()
String.prototype.split() ==

19.原型链相关知识
a.Object.prototype只是一个普通对象,它是js原型链的最顶端

 Object.prototype.proto=== null;//true

 Object.prototype.prototype === undefied;//true

Object.prototype只是一个普通对象(普通对象没有prototype属性,所以值是undefined),Object.prototype是js原型链的最顶端,它的__proto__是null(有__proto__属性,但值是null,因为这是原型链的最顶端).

b.在js中如果A对象是由B函数构造的,那么A.proto === B.prototype.

javascript中对象是由Object创建的,函数是由Function创建的.

c.内置的Object是其实也是一个函数对象,它是由Function创建的.

Object.proto === Function.prototype;

d.js中每一个对象或函数都有__proto__属性,但是只有函数对象才有prototype属性.
//函数对象

function Person(){

}

普通对象
var obj = {};
obj.proto === Object.prototype;//true

obj.prototype === undefined;//true

Person.proto === Function.prototype;//true

Person.prototype !== undefined;//true
原型链是基于__proto__形成的,继承是通过prototype实现的.
e.Function.prototype是个特例,它是函数对象,但是没有prototype属性.其他所有函数都有prototype属性.
Function.prototype.prototype === undefined;//true
f.内置的Function也是一个函数对象,它是通过自己来创建自己的.
Function.proto=== Function.prototype;//true
g.函数也是对象,因为Function.prototype__proto__指向Object.prototype.
typeof Function.prototype.proto) === “object”;//true
Function.prototype.proto=== Object.prototype;//true

20.如何在JS里判断一个对象oStringObject是否为String
== oStringObject instanceof String ==

21.如何理解JavaScript
== JavaScript是一种动态类型,弱类型个,基于原型,直译式的脚本语言.
JavaScript是一门单线程的语言.
浏览器端的JavaScript包含ECMAScript,DOM对象以及BOM对象.
JavaScript语言不仅可以在浏览器环境运行,也可以在node提供的服务器端的平台运行. ==

22.页面有一个按钮button id为 button1,通过原生的js 设置背景色为红色document.getElementById(‘button1’).style.backgroundColor=“red”;

23.现有一组人员年龄的数据,要求将这些人员的年龄按照从小到大的顺序进行排列起来,要怎样实现
在这里插入图片描述
24.下面这段JS程序的执行结果是: [1,2,3]

var a =[1,2,3];
	var b = a.slice();
	b.push(4);
	console.log(a);

25.在Javascript 中,以下代码返回true还是false( false )

var test=1.2;typeof test=='float';

变量test中存储的数字类型 1.2, typeof tset 返回 ‘number’, ‘number’ !== ‘number’,返回 false

26.在标准的 JavaScript 中, Ajax 异步执行调用基于哪一个机制才能实现( Event和callback )

27.控制台打印的结果是( 0 1 2 2 )

for(let i=0;i<2;i++){
	setTimeout(function(){
		console.log(i)
	},100);
}
for(var i=0;i<2;i++){
	setTimeout(function(){
	console.log(i)
	},100);
}

28.查看如下代码:

var datas=[10,20,30];
	datas.unshift(40,50); datas.pop();
	datas.push(60,70); datas.shift();
	console.log(datas.toString());

执行的后果是( 50,10,20,60,70 )

29.如何获取下面表单( obj.options[obj.selectedIndex].text )
在这里插入图片描述
select域的选择部分的文本,其中obj=document.getElemById(“obj”)

30.以下代码执行后,a.x 和 b.x 的结果分别是( 2 Undefined )

function A(x){
	this.x = x;
}
A.prototype.x = 1;		
function B(x){
	this.x = x;
}
B.prototype = new A();
var a = new A(2), b = new B(3);
delete b.x;

版权声明:本文为qq_52687966原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。