JS
typeof
除了2种特殊类型(null返回object,function返回function)以及数组,其他都能判断
JS中的内置函数
Object, Array, Date, Number, Function, String等
什么是Json
1.Json是js中的对象,也是一种数据结构
2.Js内置了2中方法,JSON.Stringify和JSON.parse
逻辑运算
1.在js逻辑运算中,0、NaN、""、null、false、undefined都会判为false,其他都为true
2.发生强制性转化的:逻辑运算符,字符串拼接,==运算符(转化为数字),if语句(转化为布尔值)
3.逻辑运算符或(||)
- 1.返回第一个转化布尔值为true的值,都为false就返回最后一个值
- 2.用在if语句中,用来判断是否有一个为true
4.与(&&)
- 1.返回第一个转化布尔值为false的值,都为true就返回最后一个值
- 2.与操作优先于或操作!
- 3.!(非)操作优先于&&!
null与undefined区别
1.在if判断句中都为false(转为布尔值都为false) 2.null转为数字类型为0,undefined转化为数字类型为NaN 3.一个变量未赋值用undefined 4.null是一个特殊的对象
原型链
instance of
用来判断引用类型属于哪个构造函数
跨域
因为同源政策的存在,所以不能让非同源的页面进行交互,同源指:端口,协议和域名三者都一致才行
跨域的解决办法
1.jsonp
- 原理:在页面上引入不同域上的js脚本,并且触发回调,将需要的data作为参数引入
- 优点:兼容性好
- 缺点:只支持get请求
2.CORS(跨域资源共享)
- 新增了一组 HTTP 首部字段
- 有些请求,必须先发送一个预验请求
3.postMessage
懒加载
作用:提升用户体验,减少无效资源的请求,减轻服务器压力
原理:通过scroll的回调事件,判断图片是否被用户看到,看到的话,就把自定义属性(保存图片的路径)赋值给src
es6
map
1.一种存储key-value形式的键值对的数据结构,其中key和value可以任何类型包括对象
2.使用方法:
- set(key,value):添加键值对
- get(key):查找key
- has(key):返回布尔值
- delete(key):删除键值对
- clear():将全部元素清除
set
1.一种数据结构,类似于数组,但是成员的值都是唯一的,没有重复。
2.实现数组去重
`var arr=[1,4,74,77,7,7777,7,7]
let p=new Set(arr)
console.log(p);`
3.有add,delete,clear的方法
箭头函数
区别:
- 是匿名函数
- 没有原型,因此本身没有this
- 箭头函数不会创建自己的this,这个this指向的外层第一个普通函数的this,而且不会被改变
- 箭头函数不绑定arguements,用rest参数...来代替
- 不能用new(因为new的话需要改变this的指向,但是箭头函数的this指向不能被改变或者说它本身就没有this)