今日刷题-微任务和宏任务
题目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 ...
今日刷题-四舍五入等于...
题目112345Math.round(-2019.5)的结果是A: 2019B: -2019C: 2020D: -2020 答案 B 解析 不多说,了解到的一个技巧,Math.round() 原来的数字加上0.5 然后向下取整就是最终值 123456789101112// 例子//2019.49 + 0.5 = 2019.99 向下取整 2019 x=Math.round(2019.49);//2019.5 + 0.5 = 2020.0 向下取整 2020x=Math.round(2019.5);//-2019.79 + 0.5 = -2019.39 向下取整 2020x=Math.round(-2019.79);//-2019.51 + 0.5 = -2019.01 向下取整 -2020x=Math.round(-2019.51); 题目2123456789执行以下代码,输出的a值为()if(! "a" in window){ var a = 1;}alert(a);A: nullB: 1C: undefinedD: 其他 ...
今日刷题-类型转换
题目1123456789下面有关JavaScript内部对象的描述,正确的有?(多选)A: History 对象包含用户(在浏览器窗口中)访问过的 URLB: Location 对象包含有关当前 URL 的信息C: Window 对象表示浏览器中打开的窗口D: Navigator 对象包含有关浏览器的信息 答案 牛客网的答案为A,B,C,D 我个人认为history不包含访问过的URL(当然源代码我没看过) 解析 Navagator:提供有关浏览器的信息 Window:Window对象处于对象层次的最顶层,它提供了处理Navagator窗口的方法和属性 Location:提供了与当前打开的URL一起工作的方法和属性,是一个静态的对象 History:提供了与历史清单有关的信息 Document:包含与文档元素一起工作的对象,它将这些元素封装起来供编程人员使用 题目2123456789以下哪些表达式的结果为true(多选) (多选)A: undefined == nullB: isNaN("100")C: parseInt("1a") ...