重点

JavaScript数据类型

JavaScript拥有动态类型,这意味着相同的变量可用作不同的类型
var x;
var x = 5;
var x = "John";

JavaScript对象

对象由花括号分隔。在括号内部,对象的属性以名称和值的形式(name: value)来定义。属性由逗号分隔;
var person = {firstname: "John", lastname:"Doe", id:5566};

Undefined和Null

JavaScript类型转换

JavaScript5种不同数据类型:
. String
. number
. boolean
. object
. function
3种对象类型
. Object
. Date
. Array
2个不包含任何值得数据类型
Null undefined

  • NaN的数据类型是number 数组的数据类型是object,日期的数据类型是object null的数据类型也是object, 未定义的变量数据类型是undefined。

constructor属性

不能使用typeof判断数组和日期的数据类型,但是constructor可以

  • 跳过了正则表达式

变量提升

函数声明和变量声明总是会被解释器悄悄地“提升”到方法体的最顶部。

  • JavaScript只有声明的变量会提升,初始化的不会。

程序作用域

在每个代码块中JavaScript不会创建一个新的作用域,一般各个代码块的作用域都是全局的

this的多种指向

  1. 在对象方法中,this指向调用它所在方法的对象
  2. 单独使用this时,它指向全局对象
  3. 函数使用中,this指向函数的所有者
  4. 严格模式下函数没有绑定到this上,这时this时undefined
  5. HTML事件句柄中,this指向了接收事件的HTML元素
  6. apply和call允许切换函数执行的上下文环境,即this绑定的对象,可以将this引用到任何对象。

let和const

ES6新增的两个重要关键字,let声明的变量只有在let命令所在的代码块内有效;const声明一个只读的常量,一旦声明,常量的值就不能改变。
在ES6之前,JavaScript只有两种作用域:全局变量和函数内的局部变量。

  • 使用var关键字声明的变量不具备块级作用域的特性,他在{}外依然能被访问。let关键字来实现块级作用域
    对比以下代码
var i = 5;
for(var i = 0; i < 10; i++){
  // to do 
}
//这里输出i为10

let i = 5;
for(let i = 0; i < 10; i++) {
  // to do
}
// 这里输出i为5

在JavaScript中,函数是对象,对象就有他的属性和方法。arguments apply() call()

  • 自调用函数

JavaScript闭包(内嵌函数)

此技巧是js为其没有访问修饰符而创建的“私有属性”

JavaScript对象

JavaScript中所有事物都是对象:字符串,数值,数组,函数...,对象只是带有属性和方法的特殊数据类型
创建JavaScript对象(实例)
JavaScript是面向对象语言,单JavaScript不使用类

JavaScript Number对象

JavaScript只有一种数字类型
NaN

创建一个数组

1:常规方式:
var myCars = new Array();
myCars[0] = "saab";
myCars[1] = "Volvo";
myCars[2] = "BMW";
2:简洁方式:
var myCars = new Array("Saab","Volvo","BMW");
3:字面:
var myCars = ["Saab", "Volvo", "BMW"];
  • 在一个数组中可以有不同的对象

JS浏览器BOM

window方法:
open() close() moveTo() resizeTo() availHeight() availWidth()
window.loacation.assign location.hostname location.pathname location.path location.protocol
window.history.back() window.history.forward()
Window Navigator
JavaScript弹窗 警告框 window.alert() 确认框 window.confirm() 提示框:window.prompt()
JavaScript计时时间 setInterval() setTimeout() clearInterval() clearTimeout()

JavaScript框架(库)

jQuery(最重要) Prototype MooTools

你可能感兴趣的:(重点)