js学习-内置对象

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shaoxi2093/article/details/70140995

JS学习-js内置对象

其实,说到js内置对象其实就是js本身给我们提供的基础对象,它们和我们自己创建的对象其实是一样的,有属性,有方法。我理解的(非常欢迎大神们纠正),这主要还是一种对基本数据类型处理的规范化目的(毕竟,例如每个人都写一个toString()方法,既麻烦,也不能保证每个人写的不出错),当然,这其中也肯定有对外暴露编译环境(前端是浏览器内核)的接口,例如,如果不给Date对象,让我写出js用其他方式获取本机时间……额,目前我做不到(如果有方法,希望大神留言),附上一段计算机原理回答。
这里写图片描述


js的基本数据类型。

5大基本数据类型undefined、null、Number、String、Boolean。
Object、Array、Function属于引用类型。
判断方式,常用的是typeof,毕竟就我目前才一年的经验来说,许多框架源码中能看到大量此判断方式。但是!如下代码:

typeof undefined    // undefined
typeof null   //object
typeof String    // string
typeof Number    // number
typeof Boolean   // Boolean
  
  
  • 1
  • 2
  • 3
  • 4
  • 5

这里写图片描述
这里会发现个问题,typeof null并没有像理想中那样返回null,而是object,这样就会存在一种误判,因此我们可以使用另一种方法判断,Object.prototype.toString.call(null),这样,返回的就是'object null'
效果展示

js内置对象

11种+其他1

对象名称 对象说明
Object 基础对象
Boolean 布尔对象
String 字符串对象
Number 数值对象
Date 时间戳对象
Array 数组对象
Math 数学对象
Error 异常对象
Argument 函数参数集合对象
RegExp 正则表达式对象
Function 函数构造器对象

这里我主要归纳Date、Math、String、Array、Event和RegExp对象,剩下的我建议去本文底部脚标注释1的博客,上面有很详细的讲解。

1. Date对象

Date对象是js内置时间对象,用于获取本地时间,使用前需要利用new来声明一个新的对象实体。即:

var now = new Date();
  
  
  • 1

Date对象提供了以下3类方法:
● 从系统中获得当前的时间和日期

var now = new Date();
var nowdate = now.getFullYear() + '-' + (now.getMonth()+1) + '-' + now.getDate();   //年-月-日
  
  
  • 1
  • 2

这里写图片描述
这里有几个注意的地方:
1. getYear()2会返回的并不是2017,而是117,因为ECMAScript v3 开始就使用getFullYear()替代。
2. getMonth()返回的并不是正常的1-12月,而是0-11,因此转化成正常时间需要加1。如果需要更美化的显示01-09,可以进行月份判断后添加字符串“0”。
其余比较常用的还有:

getDay() //获取星期几
getHours() //获取小时数
getMinutes() //获取分钟数
getSeconds() //获取秒数
getMilliseconds() //返回毫秒 
  
  
  • 1
  • 2
  • 3
  • 4
  • 5

● 设置当前的日期和时间

setYear(yearInt) //设置年份,同getYear()一样不是完整的年份
setFullYear(yearInt) //设置年份 
setMonth(monthInt) //设置月份
setDate(dateInt) //设置日
setHours(hourInt) //设置小时数 
setMinutes(minInt) //设置分钟数
setSeconds(secInt) //设置秒数
setMilliseconds(milliInt) //设置毫秒
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

● 在时间、日期同字符串之间完成转换 (只需了解)

扫描二维码关注公众号,回复: 4624219 查看本文章

2. Math对象

常用的Math方法

  • abs(x) 返回数字的绝对值
  • max(x,y) 返回 x 和 y 之间较大的数
  • min(x,y) 返回 x 和 y 之间较小的数
  • ceil(x) 向上取整
  • floor(x) 向下取整
  • round(x) 四舍五入后取整
  • random() 返回位于 0 到 1 之间的随机函数
  • sqrt(x) 返回数字的平方根

不是很常用的Math方法

  • acos(x) 返回数字的反余弦值
  • asin(x) 返回数字的反正弦值
  • atan(x) 返回位于-PI/2 和 PI/2 的反正切值
  • atan2(y,x) 返回(x,y)位于 -PI 到 PI 之间的角度
  • cos(x) 返回一个数字的余弦值
  • exp(x) 返回 E^x 值
  • log(x) 返回底数为E的自然对数
  • pow(x,y) 返回 y^x 的值
  • sin(x) 返回数字的正弦值
  • tan(x) 返回一个角度的正切值
  • toSource() 显示对象的源代码
  • valueOf() 返回数学对象的原始值

使用方法:

//例:创建两个0-9的随机数,并返回较大的那个
var m1 = Math.round(Math.random()*10);
var m2 = Math.round(Math.random()*10);
var rest = Math.max(m1,m2);
  
  
  • 1
  • 2
  • 3
  • 4

这里写图片描述

3. String对象

● split(c),将字符串转化为数组,以参数c为分隔。
● substr(start,length),切割字符串返回,参数为起始位置和切割长度。
● substring(start,end),切割字符串返回,注意同上区别,参数为起止位置。
● indexOf(),返回参数字符串在检索字符串中的起始位置,如果没有则返回-1。注意:由于返回位置可以为0,因此不能直接作为判断条件,应判断 >-1,才能判断是否存在在检索字符串中。
● match(),通过正则来查找是否存在,如果没有则返回null。
● test(),作用基本同上,返回true或false。
● search(),执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。
● slice(),取出字符串中的一段字符串。
● concat(),在字符串后接一段字符串。
● length(),返回字符串长度。
● toLowerCase(),将字符串全部转化为小写后返回。
● toUpperCase(),将字符串全部转化为大写后返回。
● trim(),去除字符串前后的空格。

4. Array对象

数组相关方法:
● Array(),初始化声明一个数组。
● pop(),删除数组最后一个元素,并返回该元素。
● push(),向数组中插入一条新数据。
● sort(func(m,n)),数组排序,没有参数时则按照数组中元素的字符编码(取第一字符ASCII值进行比较)进行升序排序,可以通过编写参数func(m,n),m为当前第i个元素,n为第i+1个元素,若m大于n,则返回大于0的值,若m小于n,则返回小于0数,相等则返回0。(可利用这个函数自定义排序,如对象数组根据对象属性排序)
● reserve(func(m,n)),颠倒数组的顺序,反过来排序,会改变原数组,不会创建新数组。
● concat(),将两个数组融合成一个新的数组,不影响原数组。
● join(c),将数组元素列出,并用参数c连接。
● slice(),取出数组片段,返回新数组,如取出第1到第10个元素生成新数组。
● splice(),删除数组某个、某段特定元素。注:如果使用delete arr[i],会只删除数组中该元素的值,并不会删除位置,删除后arr[i] = undefined,而splice是直接删除该元素。也可用于在数组中添加元素,splice(index,0,new),在位置i开始删除长度为0的数组元素,并添加新元素new。
● map(func(value,index,arr)),返回一个对原数组每个元素经过参数function方法处理后的数组。
● 不常接触的还有:shift()删除数组第一条数据并返回该数据,unshift()新增一条数据并返回数组长度…

数组迭代器方法:
● forEach(func(v,i,arr)),对每个元素进行func操作,参数和map()等方法一致。
● every(),返回布尔值。接受一个返回值为布尔值的函数作为参数,若每个均为true则返回true,反之为false。
● some(),返回布尔值。接受一个返回值为布尔值的函数作为参数,若其中某个为true,则返回true,全为false则返回false。
● reduce(),reduceRight()
● map(),上面解释过。
● filter(),接受一个返回值为布尔值的函数作为参数。和every()不同的是,filter不是返回true和false,而是将所有为true的元素提出来生成新数组返回。

5. Event对象

6. RegExp对象


(未完待续)



  1. js内置对象部分内容转自博客:http://www.cnblogs.com/lianzi/archive/2011/08/26/2154253.html
  2. 注释:由 getYear() 返回的值不总是 4 位的数字!对于介于 1900 与 1999 之间的年份,getYear() 方法仅返回两位数字。对于 1900 之前或 1999 之后的年份,则返回 4 位数字!
    注释:该方法总是结合一个 Date 对象来使用。
    重要事项:从 ECMAScript v3 开始,JavaScript 的实现就不再使用该方法,而使用 getFullYear() 方法取而代之!
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shaoxi2093/article/details/70140995

JS学习-js内置对象

猜你喜欢

转载自blog.csdn.net/weixin_40902527/article/details/83621446