美文网首页
JavaScript知识点(3)

JavaScript知识点(3)

作者: crayona | 来源:发表于2019-09-26 09:19 被阅读0次

get 从服务器获取数据  post从服务器传数据


闭包  子函数可以调用父函数的属性方法           函数返回时没有是放资源

函数返回时没有释放资源的栈区


数组的方法

push从后面添加   返回值是数组的长度

pop 从后面删除   返回值是删除的元素

unshift从前面添加   返回值是数组的长度

shift从前面删除    返回值是删除的元素

reverse反转     返回值是反转后的数组

join合并

concat  a数组与b数组连接  返回值是连接后的新数组

splice(index,number,替换成1,替换成2) 切    从index开始,删除number个,替换成 1,替换成2...

slice(start,end)   返回数组从start 到end-1的值

filter 过滤符合条件的对象   返回一个符合要求的数组

findIndex   返回第一个符合条件的对象的index         “”第一个“”符合条件的

find()找不到返回-1    找到“第一个”符合条件的数组成员

map() 映射   可以全局更改对应的值  比如都加上2     返回一个新数组

reduce(回调,初始值)迭代数组所有项    

every() 是不是每个都符合  有一个不符合则返回false     返回值为boolean

some()数组是否有一个符合条件             返回值为boolean

forEach(value,index,array)  等同于for循环

Array.from 将伪数组转化成数组  可以使用其方法

Array.of('2')等同于new Array(2)   数组的length都是1

arr.includes()  是否包含 返回Boolean  并且可以判断NaN

arr.keys()

arr.values()

arr.entries()


判断一个对象的类型

a  typeof

b instanceof  判断一个对象是否为一个类的实例                 是否为一个类的实例

c  constructor   构造函数判断

d  Object.property.toString.call()  例如 [object Array]   Object.property.toString.call()      属性字符串化指向


跨域的方法

 浏览器对js实行安全策略   同源政策(协议、域名、端口)

a  jsonp   动态创建script  引入跨域文件

b postMessage   window.postMessage

c CORS 需要请求头支持


函数防抖  函数节流

节流  一定的时间内执行一次

防抖  时间够用才执行


前端性能优化

1减少HTTP请求

2少用dom操作   减少dom元素数量

3代码合并压缩   精灵图片  压缩js  css  html

4少用耗性能的 opacity

5将外部脚本放到地下    js放到  body底下

6懒加载

7避免重复的请求  或者少用缓存

8避免重定向

9.图片懒加载

10js放在页面底部

11减少dns查询


作用域链针对变量的  如果变量范围内找不到就会沿着作用域链往外找

原型链针对构造函数


语义化

a用正确的标签去做正确的事                      正确标签做正确的事

b利于SEO   便于浏览器  搜索引擎的搜索   利于seo 

c无css时也是有格式的  便于阅读               无css有格式  利于阅读

d 利于后期维护                                           便于后期维护


浏览器内核   window.navigator.userAgent.indexOf()!=-1   进行判断

trident  IE

gecko  Firefox

webkit  chrome

presto  opera之前的


基本数据类型

string number  boolean  undefined  null

object symbol


 eval  对应的字符串解析成代码  并且运行


undefined  

变量被声明了  但是没有赋值                        声明变量但是没有赋值  var  a    //undefined 

调用参数时 该给的参数没有给                     函数调用 参数没有给全   function  fn(a,b){console.log(b)//undefined}    fn(1)

对象没有赋值的属性    没有赋值的属性        没有赋值的属性 window.a  undefined 

函数没有返回值                                            函数没有返回值  默认返回undefined


null

作为函数的参数  并且该函数的参数不是对象                     函数的参数不是对象

对象原型链的终点                                                              原型链的终点


new

a)创建一个新对象

b)this指向该对象

c)函数对其进行赋值   (属性、方法)

d)返回this


更改this指向    call参数一大堆  apply简化成了数组

apply的参数是 数组形式    apply(this指向,[])

call(this指向,arg1,arg2...)             


一个程序至少有一个进程   一个进程至少有一个线程

多线程程序的并发性要高

相关文章

网友评论

      本文标题:JavaScript知识点(3)

      本文链接:https://www.haomeiwen.com/subject/kqdoectx.html