js深入知识点

一.对象

 是一组属性和方法的集合

  万物皆对象

1.JS对象分类

   自定义对象:自己创建的对象

   内置对象:JS提供的对象,可以直接使用

   宿主对象:根据不同的环境划分

 2.创建自定义对象(字面量)

   使用{ }创建空对象

   { 属性名: 属性值, 属性名: 属性值, ... }

   属性名如果含有特殊字符,必须添加引号

3.访问属性

   对象.属性名

   对象['属性名']

  如果属性不存在结果是undefined

   undefined出现位置:变量声明未赋值,函数没有返回值,函数中没有传参

4.创建自定义对象 (内置构造函数)

   new Object()   创建一个空对象{},需要单独添加属性。

5.遍历属性

   依次访问对象中的每个属性

for(var k  in  对象){

  k 属性名

  对象[k]  属性值

}

6.检测属性是否存在

   对象.属性名===undefined      true -> 不存在    false -> 存在

   对象.hasOwnProperty('属性名')   true -> 存在   false -> 不存在

   '属性名'  in  对象     true -> 存在   false -> 不存在

一.模板字符串

  ` 反引号之间的内容就是模板字符串${JS表达式} `

  解决了字符串的拼接

二.对象中的方法

  就是一个函数

var p={

  name: '新哥',

  tan: function(){

     this 指向调用当前方法的对象

  }

}

p.tan()  //调用方法

三.数据的存储

 1.原始类型

   直接将数据存储到栈内存

 2.引用类型

   包含函数、对象、数组

   会将值存储到堆内存中,会自动生成一个地址

    var xin={  }

    把对象的生成的地址保存到栈内存

  

   引用类型数据如果不被任何的地址所指向就会自动销毁

   null 是一个空地址,没有指向任何堆内存数据

   如果要销毁引用类型的数据,只需要赋值为null即可

四.数组

  数组是一组数据的集合,每个数据是一个元素

 1.创建 —— 数组字面量

   [元素1, 元素2, ... ]

2.访问数组元素

  下标(索引):是JS自动为每个元素添加的编号,从0开始的一个整数 >=0

  数组[下标]

  如果元素不存在,返回的结果是undefined

3.数组的长度

  数组.length    获取元素的个数

  (1)在数组的末尾添加元素

     数组[数组.length] = 值

  (2)清空数组

     数组.length = 0

4.创建数组 —— 内置构造函数

   new Array(元素1, 元素2, ...)

   new Array(3)    初始化长度值,可以添加更多个元素

5.数组的分类

   关联数组:以字符串作为下标 (了解)

   索引数组:以>=0的整数作为下标

 6.数组和对象的区别

   两种都可以存储一组数据,对象是通过属性存储每个值,数组是通过元素存储每个值

   对象存储数据是无序的,可以不分先后顺序;数组存储的数据有序的,可以进行排列。

 7.遍历数组元素

  依次访问每个元素

for(var k in 数组){

  k  下标

  数组[k]  元素

}

for(var i=0;i<数组.length;i++){

  i  下标

  数组[i]   元素

}

API:是JS中预定义的函数和方法

一.数组的API

 数组中提供的方法

 toString()   将数组转为字符串,元素之间用逗号分隔

 join()  将数组转为字符串,可以指定元素之间的分隔符号

 concat(数组1, 数组2,..)   拼接多个数组

如何学习一个API:作用、参数、返回值

数组API还需要查看原数组是否会发生变化。

 slice(start, end)  截取数组元素,start开始下标,end结束下标,end为空会截取到最后,如果下标为负数表示倒数,不包含结束的这一项。返回截取到的元素,原数组不会发生变化。

 splice(start, count, v1,v2,...)  删除数组元素,start开始下标,count删除的数量,count为空会删除到最后,v1,v2表示要补充的元素,返回删除的元素,原数组会发生变化。

 reverse()  翻转数组元素,原数组会发生变化

 sort()   对数组元素进行排序,默认是按照编码排列

sort( function(a, b){

  return a-b  //按照数字从小到大排列

  //return b-a   按照数字从大到小排列

} )

 push()  在数组的末尾添加元素,返回数组长度,原数组会发生变化

 pop()   删除数组末尾的一个元素,返回删除的元素,原数组会发生变化

 unshift()   在数组的开头添加元素,返回数组长度,原数组会发生变化

 shift()  删除数组开头的一个元素,返回删除的元素,原数组会发生变化

 indexOf()   检测数组中是否含有某个元素,存在返回下标,不存在返回-1

二.二维数组

 用于对一组数据进行二次分类,数组中的元素还是数组

 [ [ ], [ ], [ ] ]

三.字符串对象

 包装对象:目的是让原始类型像对象一样,具有属性和方法;JS提供了三种包装对象,分别是字符串对象、布尔对象、数字对象

  new String()   将一个字符串包装为对象

  String()   将一个值转为字符串

 1.转义字符

  改变字符本身的意义

  \'   将具有特殊意义的引号转为普通字符

  \n  将字符n转为换行符

  \t   将字符t转为制表符(多个连续空格,Tab键功能)

 2.API

  length  获取字符串的长度

  charAt(下标)   通过下标获取某一个字符,也可以使用数组写法  字符串[下标]

  练习:遍历字符串javascript,统计出字符a出现次数。

  indexOf()   查找某个字符串第一次出现位置,返回下标,找不到返回-1

  lastIndexOf()    查找某个字符串最后一次出现位置,返回下标,找不到返回-1

  toUpperCase()   英文字母转大写

  toLowerCase()   英文字母转小写

所有的字符串API都不会影响到原来的字符串

  slice(start,end)   截取字符串,start开始的下标,end结束的下标,end为空截取到最后,不包含end本身,下标为负数表示倒数

  split()   将字符串转为数组

一.Math对象

 数学对象,提供了一组数学运算的API

 不需要通过new来创建对象,就可以直接使用API

 PI   获取圆周率

 abs()   获取绝对值

 ceil()   向上取整

 floor()  向下取整

 round()  四舍五入取整

 pow(x,y)  计算x的y次方 

 max()   获取一组数字最大值,不能直接写数组

 min()   获取一组数字最小值,不能直接写数组

 random()   获取随机数,范围>=0   <1

 双色球

 红球:随机获取1~33之间的6个整数,不能重复,从小到大排列

 蓝球:随机获取1~16之间的一个数字,可以和红球重复

   将获取的7个数字放入到数组

二.Date对象

 用于日期时间的存储和计算

 1.创建

  new Date('2022/9/6 11:38:30')

  new Date(2022, 8, 6, 11, 38, 30)  //第2个参数月份存储的值0~11对应1~12月

  new Date()   //存储当前操作系统的时间

  new Date(1630000000000)   //存储的是距离计算机元年的毫秒数

 2.转为本地字符串

  toLocaleString()   存在兼容性问题,只能用于项目开发调试

 3.获取存储的值

  getFullYear()/getMonth()/getDate()

              月份的值0~11

  getHours()/getMinutes()/getSeconds()/getMilliseconds()

     时         分             秒              毫秒

  getDay()   星期  范围0~6  对应日~六

  getTime()  获取Date对象时间戳

Date.now()  获取当前时间的时间戳

 4.设置存储的值

  setFullYear()/setMonth()/setDate()

  setHours()/setMinutes()/setSeconds()/setMilliseconds()

  setTime()  设置时间戳,所有的日期时间都会受到影响

 5.拷贝Date对象

  new Date(Date对象)

三.Number对象

  new Number()   将一个数字包装为对象

  Number()   将一个值强制转为数字

  toFixed(n)   保留小数点后n位

四.Boolean对象          

  new Boolean()  将一个布尔值包装为对象

  Boolean()   将一个值强制转换为布尔型

  !!值    将一个值隐式转换为布尔型

五.错误处理

 1.常见错误

   语法错误(SyntaxError):出现了中文符号,缺号半块括号等,代码书写不符合语法规范。

   引用错误(ReferenceError):使用了未声明的变量

   类型错误(TypeError):当前调用的不是一个函数类型

   范围错误(RangeError):超出了JS的规定范围,例如:递归使用不当

   自定义错误:程序员自己指定的错误

                 throw  错误内容

 2.错误处理

   即使出现了错误,不会阻止后续代码执行

try{

  尝试执行,可能会产生错误,出现错误不会阻止后续代码执行

}catch(err){

  一旦try中出现错误,就会捕获错误,将错误信息放入到err中

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值