JS内置类型

Posted 转角90

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS内置类型相关的知识,希望对你有一定的参考价值。

原始类型调用方法

原始类型是简单的值,默认不能调用属性和方法,javascript为了可以使其可以获取属性和调用方法,对其封装了对应的包装类型

  • String
  • Number
  • Boolean
  • Symbol
  • BigInt

包装类型的使用过程

  • 根据原始值,创建一个原始类型对应的包装类型对象
  • 调用对应的属性或者方法,返回一个新的值
  • 创建的包装类对象被销毁
  • 通常JavaScript引擎会进行很多的优化,它可以跳过创建包装类的过程在内部直接完成属性的获取或者方法的调用。

null、undefined没有任何方法和属性,也不存在包装类型

Math对象

  • Math.PI: 圆周率
  • Math.floor: 向下取整
  • Math.ceil: 向上取整
  • Math.round: 四舍五入
  • Math.random(): 随机[0,1)
  • Math.pow(2,4): 2**4

数组

  • push

  • pop

  • unshift

  • shift

  • arr.at(-1)

  • arr.splice(start,delCount,[item1],[item2]...): 修改原数组

  • length

    var name = [2,3,4]
    console.log(name.length) // 3
    name.length = 5  // [ 2, 3, 4, <2 empty items> ]
    name.length = 2  // [ 2, 3 ]
    
  • arr.slice(start,end): 不会修改原数组

  • arr.concat(arr1):不会修改原数组

  • arr.join(flag):

  • indexOf(): 返回索引或-1

  • lastIndexOf()

  • includes()

  • find(fn)

  • findIndex(fn)

  • sort(a,b)

  • reverse()

  • froEach(fn):

  • filter(fn)

  • map(fn)

  • reduce(fn):

    // 高阶函数,函数作为参数
    var stu = find(function(item)
        // 依次调用此函数
        if (item.id === 101) 
            return true
        
    )
    // forEach原理
    function hyForEach(fn) 
        for (var i=0;i<names.length;i++) 
            fn(names[i],i,names)
        
    
    hyForEach(function(item,index,names)
        // do some thing
    )
    
    // foreach 终极版本
    Array.prototype.hyForEach = function(fn)
        for (var i=0;i<this.length;i++) 
            fn(this[i],i,this)
        
    
    var arr = [1,2,3,4]
    arr.hyForEach(function(item,i,arr)
        console.log(item,i,arr)
    )
    
    // reduce
    var numr = [1,2,3,4,5,6]
    var res = 0
    numr.reduce(function(total,item,i,arr)
        return total+item
    ,0)
    
var name = [\'1\',\'e\',\'50\']
name[0]
name.at(0) // .at(-1), 从尾部数

name[0] = \'hyf\'

name[3] = \'hyf01\'

// delete name[0]  // [empty,\'e\',\'50\',\'hyf01\']

name.push(\'aa\',\'bb\') // [\'1\',\'e\',\'50\',\'hyf01\',\'aa\',\'bb\']

name.pop() // // [\'1\',\'e\',\'50\',\'hyf01\',\'aa\']

name.unshift(\'cc\',\'dd\')   // [\'cc\',\'dd\',\'e\',\'50\',\'hyf01\',\'aa\',\'bb\']

name.shift()  // [\'dd\',\'e\',\'50\',\'hyf01\',\'aa\',\'bb\']

// 增、删、改
name.splice(0,2) // [\'50\',\'hyf01\',\'aa\',\'bb\']
name.splice(0,0,\'a1\',\'a2\') // [\'a1\',\'a2\',\'50\',\'hyf01\',\'aa\',\'bb\']
name.splice(0,2,\'b1\',\'b2\') // [\'b1\',\'b2\'  ,\'50\',\'hyf01\',\'aa\',\'bb\']

Date对象

  • RFC 2822标准
    • new Date() Tue Dec 27 2022 00:37:53 GMT+0800 (中国标准时间)
  • ISO 8601标准:2022-12-26T16:43:16.100Z
    • YYYY: 0000-9999
    • MM: 01-12
    • DD: 01-31
    • T:物特殊含义,分割日期和时间,可以省略
    • HH: 00-24
    • mm:00-59
    • ss:秒 00-59
    • .sss:毫秒
    • Z: 时区
var date1 = new Date()
var date2 = new Date(1000) // 毫秒数
var date3 = new Date(\'2022-08-09\')
var date4 = new Date(2022,08,09,09,09,09)
  • getFullYear()

  • getMonth(): 0-11,需要加1

  • getDate():天 1-31

  • getHours(): 时

  • getMinutes():分

  • getSeconds(): 秒

  • getDay(): 一周中的第几天

  • setXXXX(): 修改时间如setFullYear(2033)

    // 获取时间戳
    date1.getTime()
    date1.valueOf()
    +date1
    
    // 当前时间戳
    Date.now()
    
  • Date.parse

    Date.parse(timeString) // 获取时间戳 等同于new Date(timeString).getTime()
    

以上是关于JS内置类型的主要内容,如果未能解决你的问题,请参考以下文章

js内置数据类型

JS内置类型

JS复习—基本包装类型(StringNumber)内置对象

JS_数据类型(内置类型)

JS中数据类型原始数据内置对象包装类型对象typeof

浅谈JS基础与内置对象