2021-10-15-原生JS面试题-002

1、什么是隐式类型转换?简单描述至少两种隐式类型转换的场景

> 数据在代码中可以呈现出来不同的类型,从一种类型转换成另一种类型称为类型转换,JS中某些表达式里可以自动将数据从一个类型转换成另一个类型,不需要开发人员干预就完成类型转换的过程称为隐式类型转换

> isNaN(dat)在进行数据判断时包含了隐式类型转换、toFixed(n)进行浮点数小数位数保留时包含了隐式类型转换、运算符进行数据运算时包含了部分数据类型隐式转换

2、什么是运算符?

让代码中的数据参与运算的符号,项目中常见的如赋值运算符、算术运算符、比较运算符、逻辑运算符等

3、下面的代码输出结果正确吗?为什么?

var res = 100 + "20"

console.log(res)       // ① 120

var res2 = "30" - "5"

console.log(res2)      // ② 25

var res3 = 10 - true  

console.log(res3)      // ③ 9

var res4 = NaN == NaN

console.log(res4)      // ④ true

var res5 = null == undefined

console.log(res5)      // ⑤ true

  • 结果错误,应该是10020,符号+两侧的数据如果包含字符串,就会自动将非字符串数据转换成字符串进行拼接
  • 结果正确,减法运算中将符号两侧的字符串数字转换成了数值数字进行了运算
  • 结果正确,减法运算中将符号两侧的布尔类型数据转换成了数值数字进行了运算

 

备注:第4个和第5个问题,只有面试价值,没有项目价值

NaN==NaN 结果是false,JavaScript语法规范中针对NaN进行了明确的规定,每个NaN都是一个独立的特殊的数值互不相等!

  • null==undefined结果是true,JavaScript语法规范中对null和undefined进行了明确的定义,用来描述无效数据!都是无效数据所以可以通过==相等判断得到true的结果!

5、下面的代码结果正确的是?为什么?

var res1 = (20 - 10) && (100 * 10)

console.log(res1)     // ① 1000

var res2 = undefined && null

console.log(res2)      // ② null

var res3 = res2 || "javascript"

console.log(res3)      // ③ javascript

> 正确,逻辑表达式|并且中,左侧表达式得到的结果如果是false直接返回;如果是true就直接返回右侧表达式结果

> 错误,res2中存储的数据应该是undefined

> 正确,逻辑表达式|或者中,左侧表达式得到的结果是false返回符号右侧的数据

6、简单写出几种获取HTML网页标签的语法?

document.getElementById(id)

document.getElementsByName(name)

document.getElementsByTagName(tag)

// 不支持IE8以下浏览器,存在兼容性问题

document.getElementsByClassName(class)

7、简述JS如何操作标签属性?

var _ele = document.getElementById(“id”)



// 获取属性

_ele.属性名称

_ele.[‘属性名称’]

// 设置属性

_ele.属性名称 = 值;

_ele[‘属性名称’] = 值;

8、简述JS如何操作标签样式?

var _ele = document.getElementById(“id”)



// 获取样式

_ele.style.行内样式名称

getComputedStyle(_ele).样式名称  或者 _ele.currentStyle.样式名称 // 兼容性



// 设置样式

_ele.style.行内样式名称 = 值;

9、简述JS如何操作标签内容?

var _ele = document.getElementById(“id”)

// 闭合标签

// 获取

_ele.innerText

_ele.innerHTML

// 设置

_ele.innerText = 数据

_ele.innerHTML = 数据



// 表单标签

// 获取

_ele.value

// 设置

_ele.value = 数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值