日常整理前端易错题-持续更新中

关于Vue的template编译,下列描述错误的是?

A. 通过compile编译器把template编译成AST语法树
B. compile是createCompiler的返回值,createCompiler是用以创建编译器的
C. AST会经过generate(将AST语法树转化成render funtion字符串的过程)得到render函数
D. A. render的返回值是VNode,render是Vue的虚拟DOM节点,里面有(标签名、子节点、文本等等)
答案: D
解析: VNode是Vue的虚拟DOM节点

for(var i=0;i<5;i++){

(function(j){

setTimeout(function(){ console.log(j) },1000)

})(i) } 这段代码输出什么?

A. 0,1,2,3,4
B. 5,5,5,5,5
C. 0,2,4,6,8
D. 1,2,3,4,5
答案: A
解析:此时闭包函数会持久化j的变量,每一次执行定时器都会将一个新建的j变量持久化,所以分别输出0,1,2,3,4

for(var i=0;i<5;i++){ setTimeout(function(){ console.log(i) },1000) } 这段代码先后输出什么?

A. 0,1,2,3,4
B. 5,5,5,5,5
C. 0,2,4,6,8
D. 1,2,3,4,5
答案:B
解析:闭包函数会将函数内部用到的变量持久化

在Node.js中,以下说法中错误的是?

A. export等价于module.exports
B. 利用Object.defineProperty可以监听某个值得变化
C. ES6模块加载并不会立即执行模块
D. Node.js中使用Buffer对象处理二进制对象
答案: A
解析: export是ES6语法的关键字而module.exports是CommonJS语法内容;module加载的本质: ES6模块的运行机制是这样的:当遇到import命令时,不会立马去执行模块,而是生成一个动态的模块只读引用,等到需要用到时,才去解析引用对应的值。 由于ES6的模块获取的是实时值,就不存在变量的缓存。

var a = [1, 2, 3]; var b = [1, 2, 3]; var c = [1, 2, 4]; a == b; a === b; a > c; a < c; 这四个的结果是什么?

A. false, false, false, true
B. false, false, false, false
C. true, true, false, true
D. other
答案:A
解析: ES5规范指出如果两个对象进行相等比较,只有在它们指向同一个对象的情况下才会返回 true,其他情况都返回 false。而对象进行大小比较,会调用 toString 方法转成字符串进行比较,所以结果就变成了字符串 “1,2,3” 和 "1,2,4"按照字典序进行比较了

在SVN中,关于外部定义,以下说法错误的是?

A. 一个外部定义只可以指向目录
B. 外部定义可以使用相对路径,也可以使用绝对路径
C. 如果需要重新定义本地工作拷贝,外部定义不会重新定位
D. 当本地拷贝使用限制使用https进行检出时,外部定义不能使用http进行提交
答案:B
解析:外部定义只可以使用绝对路径

【多选】关于Vue中的v-on,下列描述错误的是?

A. v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码
B. 可以把JavaScript代码直接写到v-on中,也可以接收一个需要调用的方法名
C. v-on修饰符包括.start 、.stop、.prevent、.self等
D. 模板语法中v-on可缩写为 @
答案: B、C
解析:v-on是指令,JavaScript代码不能直接写入v-on;v-on修饰符不包括.start

【多选】关于Webpack的缓存机制,以下说法正确的有?

A. chunkhash来生成hash值,只要依赖公共库不变,那么其对应的chunkhash就不会变
B. contenthash表示由文件内容产生的hash值,内容不同产生的contenthash值也不一样
C. CommonsChunkPlugin将Webpack入口的chunk文件中所有公共的代码提取出来,减少代码体积;同时提升Webpack打包速度
D. 在Webpack中配置CommonsChunkPlugin时其filename和chunkFilename必须使用hash
答案: A、B、C
解析:在Webpack中配置CommonsChunkPlugin时其filename和chunkFilename必须使用chunkhash,不要使用hash

HTML语言中,创建一个位于文档内部的锚点的语句是:

A. <name=“NAME”>
B. <name=“NAME”>
C.
D.
答案:C

关于Set结构与WeakSet结构,说法错误的是?

A. Set中结构成员都是唯一的,不允许重复
B. Set中初始化的时候可以接受数组作为参数
C. WeakSet不可以被遍历
D. WeakSet成员不是唯一的,可以重复
答案:D

下列哪一项的返回值是5?

A. 9&&5
B. NaN*0+5
C. undefined+5
D. ‘0’+‘5’
答案: A

选择器a:hover b,它是后代选择器,当鼠标悬浮在a标记上时,被a标记包含的b标记将应用该样式。

A.正确
B.错误
答案: A

显式类型转换是指程序运行时,系统会根据当前的需要,自动将数据从一种类型转换为另一种类型。

A. 正确
B. 错误
答案: B

在HTML页面中,
为双标记,用于定义一条水平线。

A. 正确
B. 错误
答案:B
解析:


是标签

Angular中,下列哪些属于模块的重要属性?

A. scan
B. listen
C. imports
D. bootstrap
答案:C

【多选】下列说法正确的是

A. js是弱语言类型
B. js中不区分大小写
C. js中有5大基本数据类型,和一个复杂数据类型
D. 字符串、数字、正则都是字面量
答案:ABC

可以使用DOM动态操作CSS属性。

A. 正确
B. 错误
答案: A
解析:通过JavaScript,我们可以使用DOM API来访问和修改HTML元素的CSS属性。以下是一些常用的DOM方法和属性:

getElementById() :通过元素的ID获取DOM对象。
querySelector() :通过选择器选择单个元素。
querySelectorAll() :通过选择器选择多个元素。
style 属性:通过元素的 style 属性可以访问和修改其CSS样式。
classList 属性:通过元素的 classList 属性可以添加、删除和切换CSS类。
setAttribute() :设置元素的属性,可以用于设置行内样式。getComputedStyle() :获取计算后的样式。

【多选】 Webpack中,如何激活loader?

A. 通过在语句中使用loadername前缀来激活
B. 通过Webpack 配置中的正则表达式来自动应用
C. 通过javascript编译激活
D. 运行Webpack自动激活
答案:A、B

typeof null的结果是什么?

A. object
B. null
C. string
D. undefined
答案:A
解析:在 JavaScript 中,null 被认为是一个特殊的值,表示一个空对象指针。然而,尽管 null 实际上是一个原始值,但使用 typeof 操作符检查时,它会返回 “object”。这是一个历史遗留问题,被视为 JavaScript 的一个错误。

下列说法错误的是?

A. 表示上标
B. 表示删除线
C. 表示上标
D. 表示下划线

答案: A
解析:表示删除线

【多选】 以下说法中,哪些是Sass的优点?

A. 它是预处理语言,它为CSS提供缩进语法
B. 它允许更有效地编写代码和易于维护
C. 它是超集的CSS和基于JavaScript
D. 能够动态编译与打包CSS文件及项目
答案:A、B、C、D

【多选】3 < 2 < 1 对这个表达式描述正确的是

A. 运算结果是true
B. 运算结果是false
C. 该表达式的顺序是从左向右
D. 该表达式的顺序是从右向左
答案:A、C
解析: JavaScript 中的运算符是从左向右进行计算, 3<2 = false
false< 1 <=> 0<1 故结果为true

【多选】 以下说法正确的是?

A. Sass中的@mixin用于定义可重复使用的样式
B. Sass中可以使用@for循环,循环输出指定语句
C. 使用sass –-watch可以监视一个目录或是文件的变化并自动编译
D. Sass使用@符号定义变量
答案:【待定】A、B、C、D
解析:目前看都是对的,阿里云判错的原因不清楚

Node.js中,Stream有几种流类型?

A. 2
B. 3
C. 4
D. 5
答案:C
解析:
可读流(Readable Stream):用于从数据源读取数据的流。例如,从文件系统读取文件或从网络请求获取数据。

可写流(Writable Stream):用于向目标位置写入数据的流。例如,将数据写入文件或发送数据到网络。
双工流(Duplex Stream):同时具有可读和可写功能的流。它既可以读取数据,也可以写入数据。例如,网络套接字就是双工流。
转换流(Transform Stream):是一种特殊的双工流,它可以在读取和写入数据时对数据进行转换。例如,压缩或解压缩数据。

关于React,下列说法正确的是?

A. componentWillMount --在这可以完成所有没有 DOM 就不能做的所有配置,并开始获取所有你需要的数据;如果需要设置事件监听,也可以在这完成
B. componentDidUpdate – 常用于更新 DOM,响应 prop 或 state 的改变
C. componentWillUnmount – 在这你可以取消网络请求,或者移除所有与组件相关的事件监听器
D. componentWillReceiveProps – 这个周期函数作用于特定的 prop 改变导致的 state 转换
答案: C
解析:

componentWillMount 是一个过时的生命周期钩子函数,在最新的 React 版本中已被废弃。在组件挂载之前执行配置和数据获取的操作,应该使用 componentDidMount 来替代。
componentDidUpdate 是一个 React 生命周期钩子函数,它在组件更新后被调用。它通常用于执行与 DOM 相关的操作,例如更新 DOM 元素的内容或样式,以响应 prop 或 state 的改变。
componentWillUnmount 是一个 React 生命周期钩子函数,它在组件即将被卸载和销毁之前被调用。在这个函数中,你可以执行一些清理操作,例如取消网络请求、移除事件监听器等,以确保组件在被销毁之前不会产生任何副作用。
componentWillReceiveProps 是一个过时的生命周期钩子函数,在最新的 React 版本中已被废弃。它在接收到新的 props 时被调用,但由于引入了新的更新机制,不再建议使用这个函数来进行状态转换。应该使用 componentDidUpdate 来响应 prop 的改变。

关于Angular,下列说法不正确的是?

A. Angular将双向绑定转换为一堆watch表达式,然后递归这些表达式检查是否发生过变化,如果变了则执行相应的watcher函数
B. Angular中在view上声明的事件指令,会将浏览器的事件转发给 s c o p e 上相应的 m o d e l 的响应函数 C . w a t c h 表达式可以是一个函数、可以是 scope上相应的model的响应函数 C. watch表达式可以是一个函数、可以是 scope上相应的model的响应函数C.watch表达式可以是一个函数、可以是scope上的一个属性名,也可以是一个字符串形式的表达式
D. Angular中的双向数据绑定是通过Object.defineProperty实现的
答案:D
解析:Object.defineProperty是Vue的双向数据绑定实现的方法,Angular中的双向数据绑定是通过Zone.js和Change Detection机制实现的

SVN中,以下对文件属性描述正确的有?

A. 在使用svn add 或svn import时,SVN会自动运行一个基本探测来检查文件是否包含啦可读还是不可读内容。
B. 在支持执行允许位的操作系统,SVN会自动为设置执行位的文件设置svn:executable属性
C. SVN会运行非常基础都启发式检查来检测文件是否可读,如果不是,SVN会自动设置文件都svn:mime-type属性为application/octet-stream
D. SVN也通过运行配置系统提供了自动属性特性,允许你创建文件名到属性名称与值映射
答案:B
解析:SVN在使用svn add或svn import时不会自动运行基本探测来检查文件是否包含可读或不可读内容。
SVN不会运行基础的启发式检查来检测文件是否可读,并自动设置文件的svn:mime-type属性为application/octet-stream。svn:mime-type属性通常用于指定文件的MIME类型。
SVN不通过运行配置系统提供自动属性特性来创建文件名到属性名称与值的映射。SVN提供了手动设置文件属性的功能,但不会自动根据文件名映射属性

. Webpack中,以下说法正确的有?

A. Tree Shaking将代码中永远不会走到的片段删除掉
B. 小图可以使用 base64 的方式写入文件中,有利于优化前端性能
C. Webpack可以按路由拆分代码,实现按需加载,提取公共代码
D. hash是指 Webpack 在进行模块的依赖分析的时候,代码分割出来的代码块
答案:B、C
解析:
A. Tree Shaking 是指在打包过程中,通过静态代码分析,将代码中永远不会执行到的片段删除掉,以减少打包后的文件体积。这是一个常见的优化技术,但是具体实现是由工具(如Webpack)来实现的,而不是Webpack本身在进行模块的依赖分析时处理的。

D. hash 是指Webpack在打包过程中,为每个文件生成的唯一标识符。它是根据文件内容计算得出的,用于缓存控制,当文件内容发生变化时,hash值也会发生变化。但是,hash并不是指Webpack在进行模块的依赖分析时,代码分割出来的代码块。

在Node.js中,以下说法正确的是?

A. Node.js是单线程且支持高并发的脚本语言
B. Node.js是单线程且支持高并行的脚本语言
C. Node.js底层的 libuv 是多线程的线程池用来并行I/O操作
D. 垃圾回收机制执行时,JS线程会暂停执行,大量的堆内存回收严重影响性能
答案:A、C
解析:
Node.js是单线程且支持高并发的脚本语言。Node.js采用单线程的事件循环模型,但通过非阻塞I/O和事件驱动的方式,可以处理大量并发请求,实现高性能的应用程序。

Node.js底层的libuv是多线程的线程池用来并行I/O操作。虽然Node.js主线程是单线程的,但底层的libuv库使用多线程的线程池来处理并行的I/O操作,以提高性能。

垃圾回收机制执行时,JS线程会暂停执行,但是Node.js使用的是非阻塞I/O模型,所以垃圾回收对性能的影响相对较小,不会严重影响性能。因此,选项D中的描述不准确。

请注意,Node.js的单线程特性适用于处理I/O密集型任务,而不适用于处理CPU密集型任务。对于CPU密集型任务,Node.js可能会受到性能影响。

【多选】以下说法正确的是?

A. ES6新扩展的Number.isInteger()可以检测是否是整数数据类型
B. ES6 允许写成下面这样:let [a, b, c] = [1, 2, 3]
C. ES6的Proxy 用于修改某些操作的默认行为
D. Promise 是一个对象,从它可以获取异步操作的消息
答案:B、C、D
解析:易错点在JavaScript中没有整型数据类型

【多选】下列说法正确的是

A. HTML5 不基于 SGML,因此不需要对DTD进行引用
B. HTML5需要doctype来规范浏览器的行为
C. HTML4不基于SGML,所以不需要对DTD进行引用
D. <!DOCTYPE>告知浏览器的解析器用什么文档标准解析这个文档
答案:A、B、D
解析:HTML4基于SGML,所以需要对DTD进行引用

下列说法中正确的是

A. HTTP请求状态码中403是指请求时间超时
B. HTTP请求中,服务器响应消息中不可以有空格
C. HTTP请求每次连接只处理一个请求
D. HTTP请求的无状态特性,是指HTTP请求没有状态码
答案:B
解析:403状态码是服务器拒绝访问;服务器的响应消息中一定需要有空行分割开响应内容;HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力

var num = 1; num ++ + ++num; console.log(num); 这个的输出结果是多少?

A. 1
B. 2
C. 3
D. 4
答案: C
解析:++ 的优先级大于+,先算++, 结果输出的是num数值,而不是计算结果

Webpack中,以下说法正确的有?

A. Webpack 可以监听文件变化,当它们修改后会重新编译
B. Webpack 的watch 模式默认关闭
C. Webpack中的watchOptions.poll当第一个文件更改,会在重新构建前增加延迟
D. Webpack中的watchOptions.ignored可以忽略某些文件及文件夹
答案:A、D
解析:
A是正确的。Webpack 内置了一个文件监听器,当检测到文件变化时,它可以自动重新编译。
B是不正确的。当你使用webpack-dev-server或webpack --watch命令时,watch模式是默认开启的。
C是不准确的。watchOptions.poll是用来设置轮询文件变化的间隔的,不是增加重新构建前的延迟。它主要用于某些文件系统或网络文件系统,这些系统可能不会或不能可靠地通知文件更改。
D是正确的。使用watchOptions.ignored可以指定Webpack忽略的文件或文件夹,这意味着这些文件或文件夹的变化不会导致重新编译。
综上所述,正确的选项是:A和D。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值