0%

javascript基础

没有使用过的关键字

  • abstract
  • instanceof
  • super
  • enum
  • switch
  • export
  • interface
  • synchronized
  • extends
  • this
  • case
  • throw
  • catch
  • final
  • native
  • throws
  • char
  • finally
  • new
  • transient
  • class
  • null
  • package
  • try
  • typeof
  • debugger
  • goto
  • protected
  • default
  • public
  • void
  • delete
  • implements
  • volatile
  • import
  • with
  • static

数据类型

**值类型(基本类型)**:字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。

在 JavaScript 中有 6 种不同的数据类型:

  • string
  • number
  • boolean
  • object
  • function
  • symbol

3 种对象类型:

  • Object
  • Date
  • Array

2 个不包含任何值的数据类型:

  • null
  • undefined
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    typeof "John"                 // 返回 string
    typeof 3.14 // 返回 number
    typeof NaN // 返回 number
    typeof false // 返回 boolean
    typeof [1,2,3,4] // 返回 object
    typeof {name:'John', age:34} // 返回 object
    typeof new Date() // 返回 object
    typeof function () {} // 返回 function
    typeof myCar // 返回 undefined (如果 myCar 没有声明)
    typeof null // 返回 object
    1
    2
    3
    4
    5
    6
    7
    "John".constructor                 // 返回函数 String()  { [native code] }
    (3.14).constructor // 返回函数 Number() { [native code] }
    false.constructor // 返回函数 Boolean() { [native code] }
    [1,2,3,4].constructor // 返回函数 Array() { [native code] }
    {name:'John', age:34}.constructor // 返回函数 Object() { [native code] }
    new Date().constructor // 返回函数 Date() { [native code] }
    function () {}.constructor // 返回函数 Function(){ [native code] }

typeof

检测变量的数据类型

null 还是对象
undefined 没有定义

变量声明会被提升

严格模式

“use strict”

this关键字

  • 在方法中,this 表示该方法所属的对象。
  • 如果单独使用,this 表示全局对象。
  • 在函数中,this 表示全局对象。
  • 在函数中,在严格模式下,this 是未定义的(undefined)。
  • 在事件中,this 表示接收事件的元素。
  • 类似 call() 和 apply() 方法可以将 this 引用到任何对象。

let关键字

先声明再使用

const关键字

const 用于声明一个或多个常量,声明时必须进行初始化,且初始化后值不可再修改

javascript:void(0) 含义

1
2
void func()
javascript:void func()
1
2
void(func())
javascript:void(func())

Promise

dart Future和Promise很像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
new <T>(executor: 
(
resolve: (value: T | PromiseLike<T>) => void,
reject: (reason?: any) => void
) => void
): Promise<T>;


then<TResult1 = T, TResult2 = never>(

onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>)
| undefined | null,
onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>)
| undefined | null

): Promise<TResult1 | TResult2>;

1
2
3
4
5
6
7
8
9
10
11
new Promise(function (resolve, reject) {
// resolve("song")
throw Error("error")
}).then(res => {
console.log(res)
return "nihao"
}, reason => {
console.log(reason.message)
}).then(res => {
console.log(res)
})

song
peng

1
2
3
4
5
6
7
8
9
10
Promise.all([new Promise(function (resolve, reject) {
resolve("song")
}), new Promise(function (resolve, reject) {
resolve("peng")
// reject("peng error")
})]).then(res => {
console.log(res)
},error => {
console.log(error)
})

[“song”, “peng”]

1
2
3
4
5
6
7
8
9
10
11
12
Promise.all([new Promise(function (resolve, reject) {
setTimeout(function () {
resolve("song")
},3000)
}), new Promise(function (resolve, reject) {
resolve("peng")
// reject("peng error")
})]).then(res => {
console.log(res)
},error => {
console.log(error)
})

等待3秒后才输出[“song”, “peng”]

1
2
3
4
5
6
7
8
9
10
11
12
Promise.race([new Promise(function (resolve, reject) {
setTimeout(function () {
resolve("song")
},3000)
}), new Promise(function (resolve, reject) {
resolve("peng")
// reject("peng error")
})]).then(res => {
console.log(res)
},error => {
console.log(error)
})

直接输出 peng

匿名函数

1
var x = function (a, b) {return a * b};

函数提升

使用构造函数调用函数

1
2
3
4
5
6
function methodNew() {
this.abc = 123;
return 1;
}
var one = new methodNew();
console.log(one.abc)

作为函数方法调用函数

1
2
3
4
5
6
7
8
9
10
11
function methodOne(a,b){
return a * b;
}


var obj = methodOne.call(obj,3,4)
console.log(obj)


var obj = methodOne.apply(obj,[5,6])
console.log(obj)

prototype 继承

数组操作

https://www.runoob.com/js/js-obj-array.html

RegExp 对象