JavaScript 基本组成
- JavaScript由几部分构成?
BOM、DOM、ECMAScript
数据类型
- 数据类型有哪些?
js数据类型分为两大类,6种。
-
简单数据类型:
- string
- boolean
- number
- null
- undefined
-
复杂数据类型:
- object
- 内置对象有哪些?
Array、Date、Math、Window、document、String、Number、Boolean
- 如何判断数据类型?
- typeof
- typeof有一种数据类型是无法判断出来的 : null,因为typeof null == 'obejct'
- 因为typeof null结果为'object',所以造成typeof判断对象类型存在不准确性
- typeof运算后的返回结果,类型为字符串
- typeof返回结果固定为如下几个值:'string'、'number'、'boolean'、'object'、'undefined'、'function'
基本类型与引用类型的赋值问题
- 基本类型
简单数据类型赋值时赋的是具体的值。
- 引用类型
复杂数据类型赋值时赋的是地址。
运算符
- 算术运算符 + %
+ 作用:
% 取余数
- 逻辑运算符 && || !
-
&&
- 有一个false就是false,两个true才是true
- 从左向右依次运算,运算时会把值转换为布尔类型,遇到false,
则返回参与运算的具体值(注意不是true或false),如果没有遇到false,返回最后一个参与运算的值。
-
||
- 从左向右依次运算,运算时会把值转换为布尔类型,遇到true,
则返回参与运算的具体值(注意不是true或false),如果没有遇到true,返回最后一个参与运算的值。
- 从左向右依次运算,运算时会把值转换为布尔类型,遇到true,
-
!
- 取反,返回值相反的布尔值
- !!可以得到一个数据的布尔值
- 相等运算符 == === != !==
-
==
- 先自动进行数据类型的隐式转换,转换为相同的数据类型再进行比较。
-
===
- 比较数据类型与具体的值。
- 三元运算符 ? :
先计算?号前面的表达式结果,结果为true返回:号前面的表达式运算结果,否则后面的。
布尔类型转换
-
如何把数据转换为布尔类型?
- !!
- Boolean
-
哪些数据在转换为布尔类型时结果为false?
- 0
- null
- undefined
- ''
- NaN
- false
语句
- 分支语句
if else、switch case
- 循环语句
for、while、do while、for in
- break和continue的作用是什么?
+break:- 终止循环
+continue:
- 跳出当前循环,继续下一次
函数
- 创建方式
- 构造函数
- 字面量
- 表达式
- 声明式
- 什么是形参和实参?
- 形参是定义函数时,在括号里面书写的占位符,它的作用是为了接收将来函数调用时传递过来的实参
- 实参是函数调用时,实际传递给形参的值;如果传递基本数据类型,那么实参是具体的值;如果传递引用数据类型,那么实参是引用的地址。
- 函数调用时候传参,就是一个赋值过程。
-
返回值
- 可以使用return关键字添加返回值
- 如果没有return默认返回undefined
-
arguments
- 这是一个函数运行时内部提供的对象,这个对象的使用方式和数组类似,所以称之为伪数组。
它可以通过下标访问函数调用时传递进行的实参,通过length属性得到实参的个数。
- 这是一个函数运行时内部提供的对象,这个对象的使用方式和数组类似,所以称之为伪数组。
错误抛出
错误捕获
debugger与断点
+号
- 如果两边含有字符串或者对象,那么转换为string之后再相加
- 除此之外,两数相加,转换为number之后再相加
-号
- 把两边数据转换为number之后再相减
类型相等比较
约定:非空数据类型表示null和undefined两种数据类型。
- 任何数据和NaN相比结果都为false
- null等于undefined
- null和非空类型相比结果为false
- undefined和非空类型相比结果为false
- 数字和非空类型比较,先转换为数字再比较
- 布尔和非空类型比较,先转换为数字再比较
- 对象与对象比较内存地址
- 对象与字符串,对象先转换为字符串再比较
类型 | 类型 | 规律 |
---|---|---|
NaN | 任意类型 | false |
null | undefined | true |
null | 非空类型 | false |
undefined | 非空类型 | false |
数字 | 非空类型 | 转换为数字再比较 |
布尔 | 非空类型 | 转换为数字再比较 |
对象 | 对象 | 内存地址比较 |
对象 | 字符串 | 转换为字符串再比较 |
数据做布尔类型转换
- 0、NaN、''、""、null、undefined转换结果为false
- 其余转换结果都为true