一.js的数据类型
-
数据类型
- 值类型:undefined string number boolean symbom
- 引用类型:array object function
- typeof用法
- typeof 简单数据类型 undefined string number boolean可以判断
- typeof 复杂数据类型 null [] Object
-
强制类型转换
- 字符串的石化
const a='10' + 10
a为字符串类型 - == 运算符
100 == '100' null == undefined 0 == ''
- if判断
- 逻辑运算符 ||:不存在执行下一个
console.log('' || 'abc')
&&:存在执行下一个callback&&callback()
备注
基本都是用=严格,在obj.a == null时,代表着 abj.a=null||obj.a===undefined - 三目运算
let a= tpyeof 'web' === 'string' ? 'hsc':'yk'
- 字符串的石化
-
对象
-
创建对象方法
- const obj= new Object()
- const obj={}
-
new的作用
- new 构造函数() 可以在内存中创建一个空对象
- 构造函数中this指向创建的空对象
- 执行构造函数代码,给空对象添加方法、属性
- return this
-
对象的遍历
- for(const key in obj){console.log(obj[key])} 对象自身的和继承的可枚举属性
- Object.keys(obj) 不含继承的所有可枚举属性
- Object.getOwnpropertyNames(obj) 不含继承的所有可枚举属性
- Reflect.ownKeys(obj) 对象自身的所有属性
-
-
数组
-
创建数组
- var arr = [1,2,3];
- var b = new Array(8); 设置初始长度
- var c= new Array(‘bar’,‘foo’) 长度2 值1,值2
-
数组方法
- indexof includes是否包含某个元素
- forEach():迭代数组,速度最快
- filter(item =>{return true|false}): 筛选数组返回一个新数组
- map(item =>{return itemEdit(修改的item或者新的item) }):调整数组,返回长度不变改变内容的新数组
- some() 用于检查数组中是否有满足条件的元素 返回true或者false
- every() 元素是否都符合条件 返回true或false
-
数组去重
-
filter去重
var newArr = arr.filter(function(item,index){ return arr.indexOf(item) === index; // 因为 indexOf 只能查找到第一个 });
-
for循环 配合indexof 或者includes 是否包含
var newArr=[]; //遍历当前数组 for(var i=0;i<arr.length;i++) { //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if(newArr.indexOf(arr[i]) === -1) { //indexOf() 判断数组中有没有字符串值,如果没有则返回 -1 newArr.push(arr[i]); }
-
es6中new Set()去重 …结构set对象为数组
var newArr = [...new Set(arr)];
-
-
-
内置函数
Object Array Boolean Number String Function Date RegExp Error Date(备注Date now()出来是时间戳)
内置对象
JSON Math -
简单数据类型和复杂数据类型(了解)
- 简单数据类型:String Number Boolean Null undefined
- 复杂数据类型 new 关键字() 创建
- Js中没有堆栈概念为了理解代码出现堆栈概念
- 简单数据类型直接在栈中开辟一个地址存放
- 复杂数据类型首先在栈中存放十六进制的地址,该地址指向堆中的数据