做的网站没有手机版,网站wap版影响权重么,网站建设公司怎么写宣传语,网页设计与制作简介1、js数组方法#xff1f;
Array.push()此方法是在数组的后面添加新加元素#xff0c;此方法改变了数组的长度Array.pop()此方法在数组后面删除最后一个元素#xff0c;并返回数组#xff0c;此方法改变了数组的长度 Array.shift()此方法在数组后面删除第一个元素#xf…1、js数组方法
Array.push()此方法是在数组的后面添加新加元素此方法改变了数组的长度Array.pop()此方法在数组后面删除最后一个元素并返回数组此方法改变了数组的长度 Array.shift()此方法在数组后面删除第一个元素并返回数组此方法改变了数组的长度Array.unshift()此方法是将一个或多个元素添加到数组的开头并返回新数组的长度Array.isArray()判断一个对象是不是数组返回的是布尔值Array.concat()此方法是一个可以将多个数组拼接成一个数组Array.toString()把数组作为字符串返回Array.join()以指定字符拼接成字符串然后返回Array.splice(开始位置 删除的个数元素)Array.map()此方法是将数组中的每个元素调用一个提供的函数结果作为一个新的数组返回并没有改变原来的数组Array.forEach()此方法是将数组中的每个元素执行传进提供的函数没有返回值直接改变原数组注意和 map 方法区分Array.filter()此方法是将所有元素进行判断将满足条件的元素作为一个新的数组返回Array.every()此方法是将所有元素进行判断返回一个布尔值如果所有元素都满足判断条件则返回 true否则为 falseArray.some()此方法是将所有元素进行判断返回一个布尔值如果存在元素都满足判断条件则返回 true若所有元素都不满足判断条件则返回 falseArray.reduce()此方法是所有元素调用返回函数,返回值为最后结果,传入的值必须是函数类型 2、js字符串方法
trim(): 去首尾空格split(seplimit)将字符串分割为字符数组limit 为从头开始执行分割的最大数量indexOf(str):返回 str 在父串中第一次出现的位置若没有则返回-1lastIndexOf(str):返回 str 在父串中最后一次出现的位置若没有则返回-1substr(startlength)从字符索引 start 的位置开始返回长度为 length 的子串substring(from,to)返回字符索引在 from 和 to不含之间的子串slice(start,end)返回字符索引在 start 和 end不含之间的子串toLowerCase()将字符串转换为小写toUpperCase()将字符串转换为大写replace(str1,str2):str1 也可以为正则表达式用 str2 替换 str1concat(str1,str2,...):连接多个字符串返回连接后的字符串的副本match(regex):搜索字符串并返回正则表达式的所有匹配charAt(index):返回指定索引处的字符串charCodeAt(index):返回指定索引处的字符的 Unicode 的值fromCharCode():将 Unicode 值转换成实际的字符串search(regex):基于正则表达式搜索字符串并返回第一个匹配的位置valueOf()返回原始字符串值 3、js new操作符具体做了什么
在内存创建一个新对象把构造函数中this指向新建的对象会在新对象上添加一个__proto__属性,指向函数的原型对象prototype判断函数返回值,如果值是引用类型就直接返回值否则返回this(创建的新对象) 4、js 深浅拷贝区别
浅拷贝的话如果属性是基本类型拷贝的就是基本类型的值。如果属性是引用类型拷贝的就是内存地址。就是浅拷贝是拷贝一层深层次的引用类型就是共享内存地址。深拷贝除了拷贝基本类型的值还完全复刻了对象类型。就是开辟一个新的栈两个对象属完成相同但是对应两个不同的地址修改一个对象的属性不会改变另一个对象的属性。浅拷贝方法Object.assign、Array.prototype.slice(), Array.prototype.concat()和 拓展运算符实现的复制深拷贝方法最常用的就是JSON.stringify()还有就是JQuery的jQuery.extend()再就是lodash的_.cloneDeep()或者手写循环递归了 5、js同步异步区别
同步: 下面代码会等待上面 同步代码执行完毕异步: 下面代码不会等待上面异步代码执行完毕同步浏览器访问服务器请求用户看得到页面刷新重新发请求,等请求完页面刷新新内容出现用户看到新内容,进行下一步操作异步浏览器访问服务器请求用户正常操作浏览器后端进行请求。等请求完页面不刷新新内容也会出现用户看到新内容 6、js为什么 JS 是单线程, 而不是多线程
单线程是指 JavaScript 在执行的时候有且只有一个主线程来处理所有的任务。目的是为了实现与浏览器交互。我们设想一下如果 JavaScript 是多线程的现在我们在浏览器中同时操作一个DOM一个线程要求浏览器在这个 DOM 中添加节点而另一个线程却要求浏览器删掉这个 DOM 节点那这个时候浏览器就会很郁闷他不知道应该以哪个线程为准。所以为了避免此类现象的发生降低复杂度JavaScript选择只用一个主线程来执行代码以此来保证程序执行的一致性。 7、js严格模式的使用与作用
在代码前面使用use strict就可以开启严格模式; 作用消除 Javascript 语法的一些不合理、不严谨之处减少一些怪异行为;消除代码运行的一些不安全之处保证代码运行的安全提高编译器效率增加运行速度为未来新版本的 Javascript 做好铺垫。 特点变量必须要通过修饰符进行声明函数的参数不能有同名属性否则报错禁止 this 指向全局对象增加了保留字比如 protected 、 static 和 interface 不能删除变量 delete prop 8、js线程与进程的区别
一个程序至少有一个进程, 一个进程至少有一个线程。线程的划分尺度小于进程使得多线程程序的并发性高。进程在执行过程中拥有独立的内存单元而多个线程共享内存从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行必须依存在应用程序中由应用程序提供多个线程执行控制。从逻辑角度来看多线程的意义在于一个应用程序中有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。 9、Promise.all() 原理
Promise.all() 是一个内置的辅助函数它接收一个包含多个 Promise 的可迭代对象作为参数并返回一个新的 Promise。这个新的 Promise 在传入的所有 Promise 都成功解决时才会成功解决并将所有 Promise 的解决值按顺序组成的数组作为结果如果任何一个 Promise 被拒绝则返回的 Promise 会立即被拒绝并传递第一个被拒绝 Promise 的拒绝原因。 10、Promise.all()实现根据传入url顺序, 返回按序结果
用参数数组下标用来保证按序存储循环的时候用变量记录和保证获取到了想要的所有数据就比如说定义一个count循环的时候count起一个计数的作用确保所有传入的 Promise 都被成功处理后才会触发 resolve(res)解决返回的 Promise。这样可以保证返回的 Promise 在所有传入的 Promise 都完成后才会被解决返回结果数组中的顺序也与传入的 Promise 数组保持一致。