没有合适的资源?快使用搜索试试~ 我知道了~
JavaScript面试题及答案-共80道.docx
需积分: 5 0 下载量 33 浏览量
2024-09-14
09:10:42
上传
评论
收藏 41KB DOCX 举报
温馨提示
javascript JavaScript面试题及答案-共80道.docx
资源推荐
资源详情
资源评论
undefined 和 null 有什么区别?
在理解 undefined 和 null 的差异之前,我们先来看看它们的相似点。
它们都属于 JavaScript 的 7 种基本类型。
let primitiveTypes =
['string','number','null','undefined','boolean','symbol','bigint'];
它们是属于 falsy 值类型,可以使用 Boolean(value)或!!value 将其转换为布尔值时,值为
false。
console. log(!!null);//false
console. log(!!undefined);//false
console. log(Boolean(null));//false
console. log(Boolean(undefined));//false
接着来看看它们的区别。
undefined 是未指定特定值的变量的默认值,或者没有显式返回值的函数,如:console.
log(1),还包括对象中不存在的属性,这些 IS 引擎都会为其分配 undefined 值。
let_thisIsUndefined;
const doNothing=() => {};
const someObj ={
a :"ay",
b:"bee",
c :"si"
};
console. log(_thisIsUndefined);// undefined
console. log(doNothing());//undefined
console. log(someObj["d"]);//undefined
null 是『不代表任何值的值』。null 是已明确定义给变量的值。在此示例中,当 fs.
readFile 方法未引发错误时,我们将获得 null 值。
fs. readFile('path/to/file',(e,data) => {
console. log(e);//当没有错误发生时,打印 null
if(e){
console. log(e);
}
console. log(data);
});
在比较 null 和 undefined 时,我们使用==时得到 true,使用===时得到 false:
console. log(null ==undefined);//true
console. log(null ===undefined);//false
&&运算符能做什么
&&也可以叫逻辑与,在其操作数中找到第一个虚值表达式并返回它,如果没有找到任
何虚值表达式,则返回最后一个真值表达式。它采用短路来防止不必要的工作。
console. log(false &&1&&[]);//false
console. log(""&&true &&5);//5
使用 if 语句
const router:Router=Router();
router. get('/endpoint',(req:Request,res:Response)=>{
let conMobile:PoolConnection;
try{
//do some db operations
}catch(e){
if(conMobile){
conMobile. release();
}
}
} );
使用&&操作符
const router:Router =Router();
router. get('/endpoint',(req:Request,res:Response)=>{let conMobile:PoolConnection;
try{
//do some db operations
}catch(e){
conMobile &&conMobile. release()
}
});
||运算符能做什么
||也叫或逻辑或,在其操作数中找到第一个真值表达式并返回它。这也使用了短路来防
止不必要的工作。在支持 ES6 默认函数参数之前,它用于初始化函数中的默认参数值。
console. log(null||1 ||undefined);//1
function logName(name){
var n =name ||"Mark";
console. log(n);
﹞
logName();//"Mark"
使用+或一元加运算符是将字符串转换为数字的最快方法吗?
根据 MDN 文档,+是将字符串转换为数字的最快方法,因为如果值已经是数字,它不
会执行任何操作。
DOM 是什么?
DOM 代表文档对象模型,是 HTML 和 XML 文档的接口(API)。当浏览器第一次读取(解
析)HTML 文档时,它会创建一个大对象,一个基于 HTML 文档的非常大的对象,这就
是 DOM。它是一个从 HTML 文档中建模的树状结构。DOM 用于交互和修改 DOM 结
构或特定元素或节点。
假设我们有这样的 HTML 结构:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"content="width=device-width,initial-scale=1.0">
<meta http-equiv="X-UA-Compatible"content="ie=edge">
<title>Document Object Model</title>
</head>
<body>
<div>
<p>
<span></span>
</p>
<label></label>
<input>
</div>
</body>
</html>
等价的 DOM 是这样的:
JS 中的 document 对象表示 DOM。它为我们提供了许多方法,我们可以使用这些方法
来选择元素来更新元素内容,等等。
什么是事件传播?
当事件发生在 DOM 元素上时,该事件并不完全发生在那个元素上。在“冒泡阶段”中,
事件冒泡或向上传播至父级,祖父母,祖父母或父级,直到到达 window 为止;而在
“捕获阶段”中,事件从 window 开始向下触发元素事件或 event. target。
事件传播有三个阶段:
1、捕获阶段事件从 window 开始,然后向下到每个元素,直到到达目标元素。
2、目标阶段事件已达到目标元素。
3、冒泡阶段事件从目标元素冒泡,然后上升到每个元素,直到到达 window。什么是
事件冒泡?
当事件发生在 DOM元素上时,该事件并不完全发生在那个元素上。在冒泡阶段,事件
冒泡,或者事件发生在它的父代,祖父母,祖父母的父代,直到到达 window 为止。
假设有如下的 HTML 结构:
<div class="grandparent">
<div class="parent">
<div class="child">1</div>
</div>
</div>
对应的 JS 代码:
function addEvent(el,event,callback,isCapture=false){
if(!el ||!event ||!callback ||typeof callback !=='function')return;
if(typeof el==='string'){
剩余30页未读,继续阅读
资源评论
程序员佳倩
- 粉丝: 417
- 资源: 223
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java语言开发的洛龙湖爱跑团活动报名小程序设计源码
- 基于C++及多语言整合的livelybot机器人设计源码
- 基于Python语言的HowTrader设计源码阅读指南
- 基于DSP28379D的FOC C程序,用于永磁同步电机控制 中断可由ADC或者PWM触发,外设及pid、SVPWM各部分都
- 永磁同步电机(PMSM)【双闭环控制模型故障仿真模型故障诊断代码】,MATLAB simulink仿真
- 基于Java语言的绩效管理系统后端API设计源码
- 基于Python封装的MySQL、Oracle、SQLite数据库交互库annosSQL设计源码
- 基于Java Swing的2048游戏课程设计源码
- 基于Java语言的安卓端配送系统设计源码
- 基于Python语言的gooderp_addons开源ERP设计源码,多语言支持,中国用户首选
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功