javascript
javascript
doc-DJJ
这个作者很懒,什么都没留下…
展开
-
前端校招笔试
2019.3.4周一第一次参加招聘,被打回原型,整理一下写在草稿纸上的题目1.写出你所熟知的行元素,块元素和空(void)元素行元素:span, a, i, img, button,input, strong, em, lable, code,selet,textarea块元素:div, p, h1-h6, ul,ol, li, table, form空元素:br, hr, ...原创 2019-03-06 20:57:41 · 203 阅读 · 0 评论 -
ES2020新特性
1.通过 #给 class 添加私有变量class Counter { #number = 10 increment() { this.#number++ } getNum() { return this.#number }}const counter = new Counter()counter.increment()console.log(c...原创 2020-01-17 10:23:47 · 8117 阅读 · 0 评论 -
Javascript如何判断一个值是不是NaN
问题由来:如何判断一个函数的返回值是不是NaN?NaN==NaN; //falseNumber.isNaN(NaN); //treuObject.is(NaN,NaN); //true Object.is()方法用来判断两个值是否是相同的值。用法Object.is(val1, val2);Object.is...原创 2020-01-10 16:12:45 · 3114 阅读 · 0 评论 -
Number([])与Number({})
Number()函数转换规则如下:转换规则:1)如果是Boolean值,true和false将分别转换为1和0。2)如果是数字值,只是简单的传入和返回。3)如果是null值,返回0。4)如果是undefined,返回NaN。5)如果是字符串,遵循下列规则:如果是字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,即“1”变成1,“123”会变成123...原创 2019-12-03 17:11:36 · 2153 阅读 · 1 评论 -
JavaScript正则表达式详解
第一章 正则表达式字符匹配攻略 第二章正则表达式位置匹配攻略 第三章 正则表达式括号的作用 第四章 正则表达式回溯法原理 第五章 正则表达式的拆分 第六章 正则表达式的构建 第七章 正则表达式编程 后记下面简单地说说每一章都讨论了什么?正则是匹配模式,要么匹配字符,要么匹配位置。第1章和第2章以这个角度去讲解了正则的基础。在正则中可以使用括号捕获数据,要么在API中进...转载 2019-06-13 18:49:46 · 8517 阅读 · 6 评论 -
JavaScript数组方法大全(包含ES6)
JavaScript中创建数组有两种方式(一)使用 Array 构造函数:var arr1 = new Array(); //创建一个空数组var arr2 = new Array(20); // 创建一个包含20项的数组var arr3 = new Array("lily","lucy","Tom"); // 创建一个包含3个字符串的数组(二)使用数组字面量表示法:...转载 2019-04-13 15:44:29 · 1566 阅读 · 0 评论 -
javascript交换两个数
(1) 临时变量let a = 12,b = 5;let temp = a;a = b;b = temp;(2)数值相加减交换let a = 12,b = 5;a = a + b; //a = 17,b = 5b = a - b; //a = 17,b = 12a = a - b; ...原创 2019-04-12 15:46:16 · 407 阅读 · 0 评论 -
javascript中null和undefined的区别?
1.类型不一样:typeof (undefined); //undefinedtypeof(null); //object2.转化为值时不一样:undefined为NaN ,null为0console.log(Number(undefined));//NaNconsole.log(Number(10+undefined));//NaNcons...原创 2019-03-08 11:32:04 · 904 阅读 · 0 评论 -
Javascript异步编程的4种方法
作者:阮一峰你可能知道,Javascript语言的执行环境是"单线程"(single thread)。所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往...转载 2019-06-02 16:21:27 · 142 阅读 · 0 评论 -
Js中的Map对象
map()方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。var new_array = arr.map(function callback(currentValue[, index[, array]]) { // Return element for new_array }[, thisArg])callback生成新数组元素的函数,使用三个参...转载 2019-07-17 09:07:45 · 1075 阅读 · 0 评论 -
什么是防抖和节流?有什么区别?如何实现?
一部分的用户行为会频繁的触发事件执行,而对于DOM操作,资源加载等耗费性能的处理,很有可能导致界面卡顿,甚至浏览器的崩溃,防抖和节流就是解决这种问题的防抖触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间防抖就是在函数需要频繁触发情况时,只有足够空闲的时间,才执行一次(公交司机等人上齐后才出站)思路: 每次触发事件时都取消之前的延时调用方法f...原创 2019-07-17 11:00:18 · 2669 阅读 · 0 评论 -
javascript数组详解
静态成员from:将伪数组转换为真数组let args = Array.from(arguments);isArray 判断给定的数据是不是真数组(真数组:通过Array构造器构造的数组)of Array.of()与new Array()的区别,如果只有一个参数n,前者表示数组只有一位,值为n;后者表示创建一个长度为n的空数组实例成员会改变原数组fill 填充数...原创 2019-08-04 16:20:36 · 185 阅读 · 0 评论 -
var a = {n: 1}; var b = a; a.x = a = {n: 2}; console.log(a.x) console.log(b.x)
var a = {n: 1};var b = a;a.x = a = {n: 2};console.log(a.x) //undefined console.log(b.x) //{n == 2}解释:var b = a; 对象存贮在堆内存,a和b同时引用 {n:2}赋值操作为从左到右操作,但是 . 的优先级要高于 =所以先执行a.x,此时a和b的共同索引为{...原创 2019-07-23 14:43:16 · 2096 阅读 · 0 评论 -
window.name属性
题目:var name;console.log(name);console.log(typeof name);按照正常思路来说,只是声明了name变量并未赋值,所以按常理来说应该输出:undefined"undefined"但是运行结果为究其原因,是因为window存在一个叫name的属性此属性为空,实际上,开发者定义的所有变量,都会成为window...原创 2019-08-01 20:34:17 · 3121 阅读 · 1 评论 -
javascript运算符和表达式
运算符表达式表达式 = 操作符 + 操作数 每个表达式都有一个运算结果,该结果叫做返回值,返回值的类型叫做返回类型所有的表达式可以当作数据使用=:该表达式返回赋值的结果 .:返回属性的值(同()) console.log函数调用返回的结果为undefinedchrome浏览器控制台的环境是REPL环境(读 -- 执行 -- 打印 -- 循环) 除了输出表达式的值外,还会输...原创 2019-08-02 11:08:17 · 215 阅读 · 0 评论 -
[] == ![]
== 操作符toPrimitive 是对象转基本类型。[] == ![] // -> true ,下面是这个表达式为何为 true 的步骤:// [] 转成 true,然后取反变成 false [] == false // 根据第 8 条得出 [] == ToNumber(false) [] == 0 // 根据第 10 条得出 ToPrimi...原创 2019-09-05 22:23:02 · 172 阅读 · 0 评论 -
循环中使用闭包解决 var 定义函数的问题
//本文首发于掘金社区,链接:https://juejin.im/post/5d7461c6e51d453bc470df4f经典面试题,循环中使用闭包解决 var 定义函数的问题for ( var i=1; i<=5; i++) {setTimeout( function timer() {console.log( i );}, i*1000 );}复制代码...原创 2019-09-08 10:11:12 · 926 阅读 · 0 评论 -
position的值以及各自的定位原点(relative和absolute)
①absolute:绝对定位;脱离文档流的布局,遗留下来的空间由后面的元素填充。定位的起始位置为最近的父元素(postion不为static),否则为Body文档本身。②relative:相对定位;不脱离文档流的布局,只改变自身的位置,在文档流原先的位置遗留空白区域。定位的起始位置为此元素原先在文档流的位置。③fixed:固定定位;类似于absolute,但不随着滚动条的移动而改变位...原创 2019-03-06 19:52:08 · 1697 阅读 · 0 评论 -
Javascript之立即执行函数和逗号操作符
立即执行函数 定义:此类函数没有声明,在一次执行过后即释放。适合做初始化工作。( function () { } () )只有表达式才能被执行符号执行function test(){console.log(123);}() (错,函数声明不能被执行)+(-,!,&&,||)function test(){console.log(123);}() ...原创 2019-03-01 10:23:28 · 422 阅读 · 0 评论 -
Javascript之类型转换
1.显示类型转换Number(mix){1*”1”,1+”1”,(number)num=number(‘123’),num=123(number)true--1, false--0, null--0, undefined--NaN“a”--NaN, “123abc”--NaN}parseInt(string,radix){”123.9”--123, ...原创 2019-03-01 10:26:16 · 237 阅读 · 0 评论 -
javascript之原型,原型链
1.定义:原型是function对象的一个属性,它定义了构造函数制造出的对象的公共祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法。原型也是对象。2.利用原型特点和概念,可以提取共有属性。3.对象如何查看原型 — > 隐式属性 __proto__4.对象如何查看对象的构造函数 — > constructorvar obj = {name:”a”}va...原创 2019-03-02 15:45:13 · 153 阅读 · 0 评论 -
JavaScript之继承模式(圣杯模式)
1.传统形式过多的继承了没用的属性2.借用构造函数不能继承借用构造函数的原型每次构造函数都要多走一个函数function Person(name,age,sex){this.name = name;this.age = age;this.sex = sex;}function Student(name,age,sex,tel,grade){// this...原创 2019-03-02 17:03:33 · 322 阅读 · 0 评论 -
Javascript区别数组和对象的三种方法
var arr = {}||[]; 区分arr是数组还是对象 1.arr.constructor Array是数组 Object是对象 2.arr instanceof Array ...原创 2019-03-03 09:36:29 · 221 阅读 · 0 评论 -
JavaScript中this详解
1.函数预编译过程 this —> window2.全局作用域里 this —> window3.call/apply 可以改变函数运行时this指向4.obj.func(); func()里面的this指向obj)经典例题: var name = '222'; var a = { ...原创 2019-03-04 18:42:33 · 120 阅读 · 0 评论 -
JavaScript之深度克隆(deepClone)
var obj = { name : 'abc', age : 18, sex : "male", card : ['card1','card2'], wife : { name : "bcd",...原创 2019-03-05 16:42:43 · 1329 阅读 · 0 评论 -
JS数组常见的方法
//改变原数组 var arr = []; arr.push(10,123,456);//在数组的最后以为添加数据,返回数组的长度 Array.prototype.push = function(){ for(var i = 0; i < arguments.length; i++){...原创 2019-03-06 10:16:41 · 148 阅读 · 0 评论 -
Javascript之闭包
闭包当内部函数被保存到外部时,将会生成闭包。闭包会导致原有作用域链不释放,造成内存泄露//内部的函数被返回到外部,必然形成闭包function a(){function b(){var b = 234;console.log(a);}var a = 123;return b;}var demo = a();demo(); // -->123...原创 2019-03-01 10:22:35 · 131 阅读 · 0 评论 -
Javascript之作用域
作用域[[scope]]:每个javascript函数都是一个对象,对象中有些属性我们可以访问,但有些不可以,这些属性仅供javascript引擎存取,[[scope]]就是其中一个。[[scope]]指的就是我们所说的作用域,其中存储了运行期上下文的集合。作用域链:[[scope]]中所存储的执行期上下文对象的集合,这个集合呈链式链接,我们把这种链式链接叫做作用域链。运行期上下文:当...原创 2019-03-01 10:21:44 · 144 阅读 · 0 评论 -
javascript之预编译
预编译:函数声明整体提升变量 声明提升window 就是全局的域1.imply global 暗示全局变量:即任何变量,如果变量未经声明就赋值,此变量就为全局对象(window)所有。eg: a = 123;eg: var a = b = 123;2.一切声明的全局变量,全是window的属性。eg:var a = 123; ===> window.a = 1...原创 2019-03-01 10:20:59 · 108 阅读 · 0 评论 -
立即执行函数
立即执行函数(执行完之后立即销毁)针对初始化功能的函数var num = (function(a, b, c){return a*b+c;}(1, 2, 3));(function(){})();(function(){}());+/-/! function(){}();只有表达式才能被执行...原创 2018-10-30 19:47:28 · 198 阅读 · 0 评论 -
js闭包的解决方法
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>da</title></head><body> <script type="text/javascript&quo原创 2018-10-30 20:12:04 · 727 阅读 · 0 评论 -
JS:一个字符串由[a-z]组成,找出第一个只出现一次的字母
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>Document</title></head><body> <script> var mystr = 'asdasdasdwdascxc...原创 2018-11-12 19:51:48 · 4228 阅读 · 5 评论 -
JS中的继承,重点:圣杯模式
1.原型链的继承Grand.prototype.lastName = ‘Ji’;function Grand(){}var grand = new Grand();Father.prototype = grand;function Father(){this.name=’hehe’;}var father = new Father();Son.prototyp...原创 2018-11-12 19:53:14 · 1611 阅读 · 2 评论 -
JS:字符串去重
function dw(str){ var mystr = ""; var obj = { } var len = str.length; for(var i = 0; i < len; i++){ obj[str[i]] = 'as...原创 2018-11-12 20:18:15 · 1220 阅读 · 0 评论 -
javaScript数组去重6种方式
原创 2018-11-29 17:37:20 · 100 阅读 · 0 评论 -
JS预编译
JS预编译实例举例前,先来思考一下这几个概念:变量声明 var…函数声明 function…<script> var a = 1;// 变量声明 function b(y){//函数声明 var x = 1; console.log('so easy'); }; var c = function(){//是变量声...原创 2019-01-15 15:37:20 · 311 阅读 · 0 评论 -
闭包经典问题
function test(){ var arr = []; for(var i = 0; i < 10; i++){//当i = 10的时候循环停止 arr[i] = function(){ //arr的每一位都是一个函数 console.log(i);/...原创 2019-02-27 18:53:36 · 270 阅读 · 0 评论 -
JavaScript封装type方法(typeof详细版)
function type(target){ var template = { "[object Array]" : "array", "[object Object]" : "object", "[object Number]" : "numbe...原创 2019-03-06 10:47:46 · 1126 阅读 · 0 评论