Java Script相关知识点整理

数据类型

基本数据类型:String, Boolean,Number,null,undefined 这5种之外的类型都称为Object
引用数据类型:Object, function, Array

区别:

  • 基本: 简单数据类型。变量保存在栈内存中, 比较两个基本数据类型的值本质是比较值
  • 引用: 对象数据类型。对象保存在堆内存中, 变量保存的是对象的内存地址.比较两个引用的本质是比较对象的内存地址

undefined:未赋值或未定义的变量值均为undefined
null:定义一个空对象
== 与 === 区别

1、对于 string、number 等基础类型,== 和 === 是有区别的
a)不同类型间比较,== 之比较 “转化成同一类型后的值” 看 “值” 是否相等,=== 如果类型不同,其结果就是不等。
b)同类型比较,直接进行 “值” 比较,两者结果一样。
2、对于 Array,Object 等高级类型,== 和 === 是没有区别的

null 与 undefined 区别

1)undefined:是所有没有赋值变量的默认值,自动赋值。
2)null:主动释放一个变量引用的对象,表示一个变量不再指向任何对象地址。
2、何时使用null
当使用完一个比较大的对象时,需要对其进行释放内存时,设置为 null。
3、null 与 undefined 的异同点
共同点:都是原始类型,保存在栈中变量本地。
不同点:
(1)undefined——表示变量声明过但并未赋过值。它是所有未赋值变量默认值,例如:var a; // a 自动被赋值为 undefined
(2)null——表示一个变量将来可能指向一个对象。一般用于主动释放指向对象的引用

作用域

  • let声明后的变量不允许在同一作用域中重新声明,不同作用域可以重新声明
  • 用var声明的是全局变量
  • 使用const声明的是常量,值无法改变

var关键字定义的变量可以先使用后声明。(变量提升)
let关键字定义的变量需要先声明再使用,全局声明的变量不存在于window对象中(与var不同)。
const关键字定义的常量,声明时必须进行初始化,且初始化后不可再修改。

类型检测

  • typeof:返回原始数据类型
  • instanceof:检测构造函数的prototype属性是否出现在某个实例对象的原型链上

String

将其他数值转换为字符串有三种方式:toString()、String()、
拼串。
String 对象属性
constructor 对创建该对象的函数的引用
length 字符串的长度
prototype 允许您向对象添加属性和方法

String.toUpperCase .toLowerCase
.trim():删除字符串左右的空白字符
stringObject.charAt(index)
.charAt(i):获取第i个字符
stringObject.indexOf(searchvalue,fromindex)
.indexOf('i'):获取字符i的位置
.indexOf('o',2):从第2个字符开始搜索o的位置
.lastIndexOf('i'):从结尾搜索字符串位置
stringObject.match(searchvalue)
stringObject.match(regexp)
stringObject.search(regexp)
.search("com"):搜索子字符串"com"的位置
.includes('i'):判断字符串中是否包含i
.startsWith('h'):判断字符串是否为h开头
.endsWith('com'):判断字符串是否为com结束
stringObject.replace(regexp/substr,replacement)
.replace("i","j"):用j替换i
.split(""):将字符串中的每个字符以""分隔
stringObject.split(separator,howmany)
.split(","):将字符串转换为数组
.toString():转换为字符串

截取字符串:slice,substr,substring

stringObject.slice(start,end)允许负数作为参数
stringObject.substr(start,length)
stringObject.substring(start,stop)
slice(i),substr(i),substring(i): 从第i个开始截取
console.log(hd.slice(3)); //dunren.com
console.log(hd.substr(3)); //dunren.com
console.log(hd.substring(3)); //dunren.com
slice(i,j),substring(i,j):截取第i到第j个
substr(i,j)从第i个开始截取,共截取j个字符
console.log(hd.slice(3, 6)); //dun
console.log(hd.substring(3, 6)); //dun
console.log(hd.substring(3, 0)); //hou 较小的做为起始位置
console.log(hd.substr(3, 6)); //dunren

Number

把非数值转换为数值:Number()、parseInt()
和parseFloat()。parseInt()只会将字符串转换为整数,而parseFloat()可以转换
为浮点数。

Number.isInteger(i):判断是否为整数
Number.isNaN(i):判断是否NAN
parseInt(' 99hj'):提取字符串中数字
Math.max.apply(Math, [1, 2, 3]):在数组中取最大值
Math.ceil(1.11):取最接近的向上整数
Math.floor(1.11):取最接近的向下整数
Math.round(1.11):四舍五入
Math.random()*5:返回0-5的随机数,不包括5
Math.random()*(5+1):返回0-5的随机数,包括5
min+Math.floor(Math.random()*(Max-min)):取min-max的随机数

Array

Array 对象属性
constructor 返回对创建此对象的数组函数的引用。
length 设置或返回数组中元素的数目。
prototype 使您有能力向对象添加属性和方法。

Array.isArray([]):检测是否为数组类型
([1,2,3]).toString():转换为字符串1,2,3
([1,2,3]).join("-"):转换为字符串1-2-3
Array.from(str):将类数组转换为数组
...将数组展开,可用于合并数组
.push('1'):压入新元素1,返回值为数组元素数量
.pop():弹出末尾元素,返回值为被弹出的元素
.shift():从数组前面取出元素,返回值为被取出的元素
.unshift():从数组前面添加元素,返回值为数组元素数量
.fill("a"):使用a填充数组元素
arrayObject.slice(start,end) start必需
.slice():获取数组所有元素
.slice(12):从数组中截取1-2的元素合成新元素
arrayObject.splice(index,howmany,item1,.....,itemX) index,howmany必需
.splice(1,3):从第一个元素开始删,一共删3个元素,返回值为被删除的元素
.splice(1,3,'rr'):删掉从第一个开始的三个元素,在删除位置添加rr
.splice(arr.length,0,'kk'):在末尾添加kk
.splice(0,0,'k'):在开头添加k

合并拆分

.join('-'):使用-连接数组内元素为字符串
.split(","):使用,将字符串分割数组
.concat(a,b):连接数组a和b
.copyWithin(target,start,end)

查找元素

.indexOf(i):返回i出现的位置
.lastIndexOf(i):从后向前找
.includes(i):返回布尔值
.find(i):返回第一次找到的值,若找不到则返回undefined,可以查找引用类型
.findIndex(i):返回索引值

数组排序

.reverse():反转
Array.sort((a,b)=>a-b):返回负数则a排在b前面,从小到大

循环遍历

.forEach(item,index,array)
for i in array 每次循环取索引i
for item of array 每次循环取值
for(const [key,value] of array.entr
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值