今日刷题-Object.defineProperty和Object.getOwnPropertyDescriptor
题目112345678910下列window方法中,可以显示对话框的一项是()A: confirm()B: alert()C: prompt()D: open() 答案 C 解析 A: 弹出一个判断对话框(有确认,取消按钮和提示文本),返回值为用户所按下的,为真返回true,为假返回false B: 弹出一个对话框 C: 弹出一个用户输入对话框,返回值为用户输入的值,没有输入则返回值为null D: 打开一个指定的窗口并指定打开方式 题目21234567891011121314var s = Symbol('key'); ...①console.log(s + '123'); ...②var obj = { [s]:function(){console.log(1);} ...③}var b = Reflect.ownKeys(obj); ...④A: ①B: ②C: ③D: ④ 答案 B 解析 Symbol是ES6新增的基本数据类型之一(全部基本数据类型为undefined ...
前端真题刷题-注意基础知识不要忘了基本原理
题目1123456789SVG 有多少种图形对象类型?A: 2 B: 3C: 5D: 7 答案 解析 题目212345678910111213141516以下哪个是 html5 中的 input 类型属性?(1) search(2) datetime(3) week(4) color(5) track(6) placeholderA: 1 , 2 , 3 , 4 , 6 B: 1 , 2 , 3 , 4 , 5 C: 2 , 3 , 4 , 5 , 6 D: 1 , 3 , 4 , 5 , 6 答案 解析 题目312345以下哪个不是 HTML5 中使用的媒体元素?A: <source>B: <audio>C: <track>D: <time> 答案 解析 题目412345SVG 是什么意思?A: 二级矢量图形B: 可伸缩的垂直图形C: 可伸缩矢量图形D: 三级矢量图形 答案 解析 题目512345input 元素的哪个属性将元素的值设置为表示一定范围内的数字?A: rangeB: emailC: fileD: ...
今日刷题-微任务和宏任务
题目1123456789101112131415161718192021执行以下程序,输出结果为()var a = 100;function a(){var a = 200;console.log(a);}a();A: 100B: 200C: 抛出异常D: f a(){var a = 200;console.log(a);} 答案 C 解析 首先注意,函数提升优先级高于变量提升(也就是先函数提升才轮到变量) 之前我一直以为是被覆盖…. 所以上面的代码相当于 123456789101112function a(){var a = 200;console.log(a);}var a a = 200;a = 100;a();//所以报错~ 题目212345678910111213141516171819var num = prompt('请输入分母:')try{ console.log('a'); value = 0 / num; console.log(& ...
今日刷题-类型转换必须解决
题目112345678下面结果为真的表达式是:()A: null instanceof ObjectB: null === undefinedC: null == undefinedD: NaN == NaN 答案 C 解析 A: null instanceof Object ;// false typeof null === ‘object’;// true 同理 undefined instanceof Object ; //false typeof undefined === ‘undefined’ //true B,C null 遇到二个等号( == ) 和 undefined 比较,无条件返回true null 遇到三个等号( === ) 和undefined 比较,无条件返回false D: NaN 不与 任何值相等 包括自身 题目212345678以 ...
今日刷题-原型链
题目1123456789101112请问以下两次检测对象constructor是否拥有属性名1的结果分别是什么?1 in Object(1.0).constructor;Number[1] = 123;1 in Object(1.0).constructor;A: false,falseB: false,trueC: true,trueD: true,false 答案 B 解析 in用于检测一个属性是否在指定对象上或者是其原型链上 Object 构造函数将给定的值包装为一个新对象。 比如Object({name:’李白’}) 返回 { name : ‘李白’ } Object([1,2,3,4]) 返回[1,2,3,4] Object(1.0) 返回Number(1) 也就是Number对象 1234567891011// 代码等同于var temp = Object(1.0);1 in temp.constructor;//Object[key] = value; 形式给 constructor 对象添加 key = 1 属性,对应的 value = 123 // ...
深入自定义事件和原生DOM事件($attr等)
深入自定义事件和原生DOM事件自定义事件 在组件上标签上添加的事件就是自定义事件,不管系统是否带这些事件 比如添加<自定义组件 @自定义事件 = "回调函数"></自定义组件> 那么@自定义事件在自定义组件上就是自定义事件 <自定义组件 @click = "回调函数"></自定义组件>,那么@click就是自定义事件 添加的事件如果没有传入参数,那么输出就是undefined 如图,传入了参数,单击button,输出为10,如果没有传递参数10,则输出undefined 自定义组件上绑定原生DOM事件使用native和不使用的区别,如下图 如图 自定义事件示例App.vue 12345678910111213141516171819202122<template> <div id="app"> <!-- 给自定义组件绑定自定义事件为click事件,并将事件的回调函数绑定在事件check上 --> &l ...
浅拷贝深拷贝和个人一些新理解(非普遍的理解)
预备知识 引用数据类型 Object(在JS中除了基本数据类型以外的都是对象,数据是对象,函数是对象等等) 基本数据类型 Number、String、Boolean、Null、 Undefined、Symbol 文章参考了牛客网CodeSheep 赋值 vs 浅拷贝 vs 深拷贝赋值(不能算是拷贝,因为拷贝的仅仅只是引用关系,并没有生成新的实际对象) 很常见的一种 123456789101112var a = 10;var b = 100;var obj = { name:"李白", sex:"男"}// 注意,这个严格来说是赋值,不是什么浅拷贝深拷贝!后面有原因var obj2 = obj;// 注意,这个严格来说是赋值,不是什么浅拷贝深拷贝Student codeSheep = new Student();Student codePig = codeSheep; 浅拷贝一个误区很多人说var objOrigin = {name:'李白'}; var objAfter = objOrig ...
今日刷题-重写的ValueOf
题目1123456789以下关于Histroy对象的属性或方法描述正确的是()(多选)A: back回到浏览器载入历史URL地址列表的当前URL的前一个URLB: go表示刷新当前页面C: length保存历史URL地址列表的长度信息D: forward转到浏览器载入历史URL地址列表的当前URL的下一个URL。 答案 A,C,D 解析 A: back回到浏览器载入历史URL地址列表的当前URL的前一个URL B: go() 加载history列表中的某个具体页面(可以自由跳转)。所以B的表述刷新当前页面是错误的。 history.go(2)向前移动两页 history.go(-2)向后移动两页 C: 具体可看MdnWebDocs D: 在会话历史中向前移动一页。它与使用delta参数为1时调用 history.go(delta)的效果相同。 题目212345678910111213141516171819202122以下哪些代码执行后i的值为10:(多选)A: let i =1 + { valueOf() { return ...
今日刷题-变量的回收和reduce的使用
题目112345678以下哪些表达式的值为0?(多选)A: (()=>{}).lengthB: 1 & 2C: +[]D: [1,2,-3].reduce((a, b) => a - b, 0) 答案 A,B,C,D 解析 A: 获取的是形参的个数(不是实参) 12345如果是((a)=> {}).length,形参有一个所以函数的length为1 ;如果是((a,b)=> {}).length,形参有两个所以函数的length为2假如:function aaa(){} aaa(1,2);console.log(aaa.length) ;//值为0,因为形参个数是0,所以函数的length为0 B: & 与运算, (二进制下)二者都是1最终结果才为1,否则就为0 1231的二进制表示 00012的二进制表示 00101&2结果是 0000 ,转成10进制也就是0 C: +[ ] 隐式类型转换。 +会让 ...
默认暴露,分别暴露,整体暴露的再次学习及常用知识
三个暴露相同点 可以理解为都是暴露出一个对象给其他使用! 无论是哪一个暴露方式,想要直接获取到暴露出去的对象,可以使用 123import * as 名称 from "xxx.js"//比如import * as $API from "xxx.js" 默认暴露 默认暴露js代码里面,**只可以有一个默认暴露(也就是只能由一个export default出现)**否则出现Uncaught SyntaxError: Identifier '.default' has already been declared (at 1.js:2:8)报错 暴露出一个对象,直接就可以拿来使用 1.js内容 123456789101112export default { a:10, b:100}//相当于向外暴露一个对象,对象当中只有一个default属性,值为暴露对象的值// 上面暴露相当于是暴露下方对象给其他使用{ default:{ a:10, b:100 ...