Javacript阶段考试题

本文详细介绍了JavaScript中的数据类型,包括typeof和instanceof的区别,以及如何转换数据类型。此外,还讨论了闭包的概念、优点与使用场景,Promise的状态管理,以及this的指向规则。同时,提到了DOM操作,如元素的创建、添加、插入和删除,以及数组的迭代方法和字符串的操作。
摘要由CSDN通过智能技术生成

1、js中typeof 可以得到哪些数据类型

Number、String、Boolean、undefined、Object、function、Symbol

2、==和===的区别

==只判断数值是否相等,===既判断数值又判断数据类型

3、怎么实现两个对象合并?

扩展运算符

4、数据类型有哪些?

Number、String、Boolean、undefined、null、Object、function、Array、Symbol

5、instanceof和typeof的区别

typeof的返回值是一个字符串,用来说明变量的数据类型;

typeof 一般只能返回number, boolean, string, function, object, undefined。对于 Array, Null 等特殊对象使用 typeof会返回 object。

instanceof的返回值是布尔值,用于判断一个变量是否属于某个对象的实例。

6、写出数据类型的转换的五种方法以及特点

转换成数值类型

(1)Number(); 

把字符串转换成数字的时候,只要有一个字符不是数字,返回NAN;当把布尔类型转换成数字时,true=1,false=0;

(2)parseInt();

把字符串解析成整数,无法转换布尔类型,返回的结果是NAN;在转换字符串的时候,遇到整数就转换成整数,遇到字符就返回,只显示前边整数。如果字符串中第一个字符非数字,返回NAN。

(3)parseFloat();

把字符串解析成小数,遇到第二个点或者非数字结束解析;如果解析内容只有整数,则解析成整数。

转换成字符串

  1. 数据.toString(); 

undefined和null无法通过这种方法转换。

  1. String();

undefined和null可以通过这种方法转换。

转换成布尔类型

Boolean();

转换成false的六种情况:null、undefined、""(空字符串,里边有空格不算空字符串)、0、NaN、false;除了这六种情况,其他都是转成true。

7、什么是闭包  闭包的优缺点以及闭包的使用场景

函数嵌套,一个作用域可以访问另一个作用域中的变量。

闭包就是函数内部和函数外部连接起来的桥梁。

优点:可以延长变量的使用范围, 实现代码的模块化  避免变量的污染。 

缺点:使用不当会造成内存泄漏。

闭包的使用场景:采用函数引用方式的setTimeout调用、回调函数、节流防抖、封装私有变量。

8、实现对样式操作的所有方式

通过修改class名

行内:

元素.style.属性名=‘属性值’

元素.style.cssText=‘属性名:属性值’

非行内:

标准浏览器:getComputedStyle

非标准浏览器:CurrentStyle

jQuery:

$(变量名)css(属性名,属性值)

9、Promise的特点

有三个状态:pending(正在进行)、fulfilled(已经成功)、rejected (已经失败)。

结果只有两种可能:

pending(正在进行)到 fulfilled(已经成功) à成功àresolve。

pending(正在进行)到 rejected (已经失败)à失败àreject。

promise的状态一经确定就不会改变了。

10、This指向

this永远指向,调用它的对象。

函数中的this指向他的调用者。

事件中this指向事件源。

普通模式, this指向window。

严格模式, this指向undefined。

定时器内部的this永远指向window。

构造函数中的this指向实例出来的对象。

11、offsetHeight、scrollHeight、clientHeight的区别

offsetHeight:包含元素内容的高度+内边距+边框。

clientHeight:包含元素内容的高度+内边距,不包含边框。

scrollHeight:元素内容的高度。

12、数组的五种迭代方法,以及之间的区别

forEach—循环遍历:数组.forEach(function(item,index ,arr){}

对数组中的每一项执行函数,没有返回值。类似于for循环。不会改变数组本身。

Map—映射:对数组中的每一项执行函数,返回(处理后的)每一项。对空数组不操作,不会改变数组本身。

Filter—过滤:对数组中的每一项执行函数,把里面返回 true 的项,组成一个数组返回。不会改变数组本身。

Every—判断:对数组中的每一项执行函数,如果每一项都返回 true ,则该方法返回 true。不会改变数组本身。

Some—判断:对数组中的每一项执行函数,只要有一项返回了 true ,则该方法返回 true。不会改变数组本身。

13、字符窜的截取和分割方法,并解释特点

截取:

subString(开始位置,结束位置

1. 包括开始时位置,不包括结束位置。

2. 只写开始位置,截取到最后。

3. 结束位置大于字符串长度,截取到最后

4. 开始位置大于结束位置时,两个位置进行交换。

5. 开始位置参数为负值,先转为0。

6. 结束位置参数为负值,先转为0,再交换。

slice(开始位置,结束位置)

1. 包括开始时位置,不包括结束位置。

2. 不写结束位置,就截取到最后。

3. 结束位置大于字符串长度,截取到最后。

4. 当开始位置大于结束位置时,不交换位置,截取为空。

5. 当开始参数为负数的时候,先加字符串的长度,再截取,若开始位置大于结束位置,取值为空。

6. 当结束参数为负数的时候,先加字符串的长度,再截取,若开始位置大于结束位置,取值为空。

substr(开始位置,截取的长度

1.截取的长度省略时可截取到最后,值不可为负

2.截取的长度大于字符串的长度,截取到最后

3、开始位置为负数时,从后往前查找,再从下标位置向右截取

分割:

split(‘’)

1.字符串转化为数组。

2.默认是,分割。

3.若有其他内容就将该内容替换成分割符。

14、DOM元素的创建,添加,插入,删除,克隆

创建:document.createElement('节点名称')

添加:父节点.appendChild(你要添加的节点)

插入:父元素.insertBefore(插入的节点名称,在哪个标签前面插入)

删除:父元素.removeChild(要删除的节点)

克隆:节点名称.cloneNode()

15、箭头函数和普通函数的区别

this指向不同,箭头函数中没有this。

箭头函数不能使用arguments。

书写方式不同,箭头函数使用箭头定义函数。

箭头函数可以省略return。

箭头函数都是匿名函数。

箭头函数不能用于构造函数,不能使用new。

Call、apply、bind改变不了this指向。

16、new的作用

开辟一个新的内存空间 新的空对象。

this指向新的对象。

将属性和方法赋值给新对象。

返回这个新对象。

17、定时器的作用及分类和清除定时器的方法

定时器就是由JS提供了一些原生方法来实现延时去执行某一段代码。

setTimeout—延迟定时器:延迟多长时间执行。

setInterval—间隔定时器:每隔多长时间执行一次。

清除定时器:clearTimeout(定时器名字)

            clearInterval(定时器名字)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值