Object类型

创建 Object 实例的方式

  1. var person = new Object
  2. 字面量方式 var person = {}

Array 类型

创建数组的方式
1.var colors = new Array()
2.字面量方式 var colors = [‘red’,’blue’]

检测数组

  • value instanceof Array(限制单一的全局执行环境)
  • Array.isArray(value)

栈方法
push()
pop() 尾部删除

队列方法
shift() 删除第一个元素
unshift() 头部添加

重排序方法
reverse()
sort()

操作方法
concat()

slice()
splice()

区别:

  • slice()
    • 不会对数组进行修改
  1. arr.slice([begin[, end]])
  2. begin 为负时 表示 倒数开始 比如slice(-2) 表示倒数第二个元素到最后一个元素(包含最后一个元素)
  • splice()
    • 会改变原数组

位置方法
indexOf()
lastIndexOf()

迭代方法
every()
filter()
forEach()
map()
some()

缩小方法
reduce()
reduceRight()


Date类型

**

  1. var now = new Date()


下面三个方法是 Date类型 重写了。

  • toLocaleString()

会按照与浏览器设置的地区相适应的格式返回日期和时间

  1. var now = new Date()
  2. console.log(now.toLocaleString())
  3. //2020/7/24 上午9:32:01

**

  • toSting()

返回带有时区信息的日期和时间,其中一般以军用时间(即小时的范围是0到23)

  • valueOf()

返回的是日期的毫秒显示,可以方便使用比较操作符(大于或小于)来比较日期值



image.png


image.png

日期时间组件方法

注意

  1. getMonth() //返回日期中的月份 0表示1月,11表示12月
  2. 所以月份在取得时候,需要加上 1
  3. getDay() //返回日期中的星期几 0表示星期日,6表示星期六
  4. var now = new Date(2020,6,26)
  5. console.log(now.getDay()) //0 星期天



**

Function类型

函数是对象,函数名是指针


每个函数都是Function类型的实例,而且都与其它引用类型一样具有属性和方法,由于函数是对象,因此函数名实际上也是一个指向函数对象的指针。

  1. 因为函数
  2. function add(num){...}
  3. 可以写成
  4. var add = function(num){...}
  5. 实际上就是 函数名是指针,后者覆盖了前者

如下图
image.png
**


**

作为值的函数

**
可以从一个函数中返回另一个函数,例如比较函数。
image.png

函数内部属性

  • 有两个特殊的对象 arguments 和 this
    • arguments: 类数组对象,包含着传入函数中的所有参数
      • callee属性,该属性是一个指针,指向拥有这个 arguments 对象的函数
    • this: 引用的是函数据以执行的环境对象,

函数属性和方法

  • 每个函数包含两个属性:length 和 prototype
    • length:表示函数希望接收的命名参数的个数
    • prototype: 保存他们所有实例方法的真正所在

      像 toString() 和 valueOf() 等方法实际上都保存在prototype下,只不过是通过各自对象的实例访问。

每个函数都包含两个非继承而来的方法:apply() 和 call().
用途:都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。

  • apply()

    • 参数1:其中运行函数的作用域
    • 参数数组,可以是Array的实例,也可以是arguments 对象

      1. function sum(num1,num2){
      2. return num1 + num2
      3. }
      4. function callSum1(num1,num2){
      5. return sum.apply(this,arguments)
      6. }
      7. function callSum2(num1,num2){
      8. return sum.apply(this,[num1,num2])
      9. }
      10. console.log(callSum1(10,10))
      11. console.log(callSum2(10,10))
  • call()

    • 参数1:其中运行函数的作用域 (一样)
    • 参数需要直接传给函数
  1. function sum(num1, num2) {
  2. return num1 + num2
  3. }
  4. function callSum(num1, num2) {
  5. return sum.call(this, num1, num2)
  6. }
  7. console.log(callSum(10, 10))
  • bind()

基本包装类型

Boolean Number String

实际上,每当读取一个基本类型值得时候,后台就会创建一个对应得基本包装类型得对象,从而让我们能够调用一些方法来操作这些数据。

  1. var s1 = "some text"
  2. var s2 = s1.substring(2)
  3. /*
  4. 1.创建String 类型得一个实例
  5. 2.在实例上调用指定的方法
  6. 3.销毁这个实例
  7. */
  8. //分析代码
  9. var s1 = new String("some text")
  10. var s2 = s1.substring(2)
  11. s1 = null

引用类型与基本包装类型的主要区别就是对象的生存期,使用new操作符创建的引用类型的实例,当执行流离开当前作用域之前都一直保存在内存中,而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁,这意味着我们不能在运行时为基本类型值添加属性和方法。

  1. var s1 = "some text"
  2. s1.color = "red"
  3. console.log(s1.color) //undefined

原因:第二行创建的String对象在执行第三行代码时已经被销毁了,第三行代码又创建自己的String对象,而该对象没有color属性。


String类型

1.字符方法:
charAt() 以单字符字符串的形式返回给定位置的那个字符。
charCodeAt() 返回的是字符编码
都接收一个参数,即基于0的字符位置。

2.字符串操作方法
concat()

  • slice() 和 substring() 的第二个参数指定的是子字符串最后一个字符后面的位置

slice()
substring()

  • substr() 第二个参数指定的是返回的字符个数,没传则为字符串的长度为结束位置

substr()

3.字符串位置方法
indexOf()
lastIndexOf()

4.trim()
创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果

5.字符串大小写转换方法
toLowerCase()
toUpperCase()

Global对象