JavaScript理论练习题(二)

编程入门 行业动态 更新时间:2024-10-09 12:34:41

JavaScript理论<a href=https://www.elefans.com/category/jswz/34/1768594.html style=练习题(二)"/>

JavaScript理论练习题(二)

1.以下程序执行后返回的结果是:(   )

1

2

3

4

5

6

7

8

9

10

11

12

var p1 = {

  name:'小明',

  age:'12',

  action:function(where,doing){

   console.log(this.age + '岁的'+this.name + '在' + where + doing);

  }  

}

var p2 = {

  name:'小红',

  age:'15'

}

console.log(p1.action.call(p2,'操场上','运动'))

12岁的小明在undefined undefined
12岁的小明在操场上运动
15岁的小红在undefined undefined
15岁的小红在操场上运动

解析:apply call bind 三者第一个参数都是指向的对象,从第二个开始就不同了。call中参数是直接放在语句中的,apply是必须要放在一个数组中。bind和call传入的参数格式相同,它参数类型更广泛,可以是任意类型的。

2.下列正确定义函数的是

function foo() {} //√
Function foo() {}
var foo = new Function() {} //var foo = new Function()  没有大括号
var foo = new function() {}

3.以下描述错误的是

cookie以及loaclStorage都会伴随着http请求发送到服务器 //cookie会,localstorage不会伴随着http请求头发送到服务器。
get提交的url会有长度的限制,而post提交的数据则可以比较大
在javascript中可以操作cookie
javascript在浏览器的执行是单线程的
html5中的新增存储方式包括localStorage/sessionStorage

解析:

特性CookielocalStoragesessionStorage
数据的生命期一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效除非被清除,否则永久保存仅在当前会话下有效,关闭页面或浏览器后被清除
存放数据大小4K左右一般为5MB
与服务器端通信每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题仅在客户端(即浏览器)中保存,不参与和服务器的通信
易用性需要程序员自己封装,源生的Cookie接口不友好源生接口可以接受,亦可再次封装来对Object和Array有更好的支持

4.假设有如下代码,那么a(10)的返回结果是?

1

2

3

4

function a(a){

    a^=(1<<4)-1;

    return a;

}

5
10
15
16

5.请问以下JS代码在Node环境下的输出顺序是?

1

2

3

4

5

6

7

8

9

10

11

12

13

Promise.resolve()

.then(() => {

  console.log('p1');

})

.then(() => {

  console.log('p2');

})

process.nextTick(() => {

  console.log('n1');

  process.nextTick(() => {

    console.log('n2');

  })

}

p1、p2、n1、n2
n1、n2、p1、p2 //√
p1、n1、p2、n2
n1、p1、n2、p2

 解析:Node 中的“微任务(microtasks)其实是一个统称,包含了两部分:

  • process.nextTick() 注册的回调 (nextTick task queue)
  • promise.then() 注册的回调 (promise task queue)

Node 在执行微任务时, 会优先执行 nextTick task queue 中的任务,执行完之后会接着执行 promise task queue 中的任务。所以如果 process.nextTick 的回调与 promise.then 的回调都处于主线程或事件循环中的同一阶段, process.nextTick 的回调要优先于 promise.then 的回调执行。

6.下列哪些函数是JavaScript的全局函数?

encodeURI
parseFloat
setTimeout
eval

解析:个人记忆方法:6(编码相关)+ 2(数据处理)+ 4(数字相关)+ 1(特殊)

编码相关:

    escape()、unescape()、encodeURI()、decodeURI()、

    encodeURIComponent()、decodeURIComponent()

数据处理:

    Number()、String()

数字相关:

    isFinite()、isNaN()、parseFloat()、parseInt()

特殊:

    eval()

7.请问以下JS代码的输出结果会是什么

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

var a = 'w' 

let obj = {

  a: 'o',

  print: function() {  //this指向obj这个对象

    console.log(this.a);

  },

  print2: () => {  //this指向全局作用域window

    console.log(this.a);

  }

}

let p = obj.print; //在全局下创建的p

let p2 = obj.print2; //在全局下创建的p2

obj.print();  //局部下的a=o

obj.print2();//全局下的o=w

p();//全局下的o=w

p2(); //全局下的o=w

o、 undefined、 undefined、undefined

 

o、 w、 undefined、 undefined

 

o、 w、 w、 undefined

 

o、 w、 w、 w //√

8.用户在登陆某个账号时,通常是将账号名和密码分别输入到对应的文本框中,现要将账号名和密码连接起来作为用户的唯一标识符,怎样来实现这一功能(    A  )

userName.concat(pwd);
userName.append(pwd);
userName.appendTo(pwd);
userName.pop(pwd);

 

更多推荐

JavaScript理论练习题(二)

本文发布于:2024-02-06 05:24:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1746820.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:练习题   理论   JavaScript

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!