JS基础知识(一)基本数据类型

JS的基本数据类型:

  1. String 字符串类型。
  2. Number 数值类型,整数、小数、负数、NaN。
  3. Boolean 布尔类型 (true,false)。
  4. Undefined undefined (未知类型)没有定义的量。
  5. Null null (空类型)。

* 字符串String类型

· 特性

  1. 有0个或多个16位Unicode字符组成
  2. 单引号与双引号不能交叉使用
  3. 使用length属性访问字符串的长度
    a. 转义序列表示一个字符
    b. 无法精确返回双字节字符长度
  4. 字符串一旦被创建,其值将不能改变,若要改变必须销毁原有字符串

· 转义序列

1
2
3
4
5
6
7
8
9
10
\n 换行
\t 制表符
\b 空格
\r 回车符
\f 分页符
\\ 斜杠 \
\' 单引号
\" 双引号
\xnn 十六进制,n代表0~F
\unnnn 以十六进制代码表示一个Unicode字符

· 类型转换方法

toString()

使用类型:

  1. number
  2. boolean
  3. string
  4. object

用法:

1
2
var num = 1;
num.toString();

结果:1 //字符串1

String()

使用类型

  1. null
  2. undefined

eval()

计算字符串表达式的值并以数值的形式返回

* undefined 未定义

· undefined的几种情况

  1. 使用var声明变量但未初始化
  2. 区分空对象指针与尚未定义的变量
  3. 对未初始化的变量及未声明的变量使用typeof运算符均会返回undefined

* null 空

逻辑上null表示一个空对象的指针

使用typeof检测室会返回object

· undefined与null的关系

· undefined派生于null因此在使用”==”进行比较二者时,结果是true。
· 没有必要将变量值显示声明undefined
· 声明空对象时应将其值赋值为null

* boolean

true为真,flase为假

true不一定=1,false不一定=0。

· 使用Boolean()进行转换

转换为true

  1. 任何非空字符串
  2. 任何非零数值
  3. 任何非空对象

转换为false

  1. 空字符串
  2. 0及NaN
  3. null及undefined

* 数值number类型

· 进制

十进制

平时见到的数字都是十进制如

27,4,65,1,。。。

八进制

八进制前导 0,有效序列0~7。若超出有效范围,前导位0被忽略,后面的数当成十进制,如:010,转换成十进制的数是8;028则会被当成十进制的数28。

十六进制

十六进制前导位0x,有效序列0~9,A~FA代表10,以此类推F是15。0x10,转换成十进制的数是16。

· 浮点数

1
小数点后至少一位数字

科学计数法

· 小数点后带有6个0的浮点数
· 以e为底*10的+-N次幂

最高精度

1
17位小数

缺陷

· 存在舍入误差
· 无法测试特定浮点数值

· 数值范围

###最小值

1
Number.MIN_VALUE

最大值

1
Number.MAX_VALUE

超出范围

  1. 正无穷
    · Infinity
    · Number.POSITIVE_INFINITY
  2. 负无穷
    · -Infinity
    · Number.NEVATIVE_INFINITY
  3. 缺陷
    无法参与下一次计算
  4. 检测方法:isFinite()
    · 超出范围 false
    · 合法范围 true

· NaN非数

含义

1
Not a Namber

非数值

特性

  1. 任何涉及NaN的操作都将返回NaN
  2. NaN与任何值都不相等,包括其自身

检测

方法:isNaN()

可以转换为数值的返回false,不能转换成数值的返回true.

· 数值转换

Number()方法

Boolean

1
2
3
4
Number(true); //值是1.
Number(false); //值是0.
Number(null); //值是0.
Number(undefined); //值是NaN.

字符串转换成数值

1
2
3
4
只包含数字:转换成十进制数,前导位有0的话,0被忽略。
包含有效浮点格式:转换成浮点数值,前导位0被忽略。
包含有效十六进制格式:转换成相同大小的十进制数。
空字符串:转换成NaN。

parseInt()方法

特性

  1. 忽略前置空格
  2. 直接找到第一个非空字符
    · 不是数字字符或负号 //NaN.
    · 数字字符:解析所有后续字符,遇到非数字字符结束.
    · 小数点不是有效数字.

参数

1
参数1:要解析的字符串
1
参数2:转换时所使用的基数

parseFloat()方法

  1. 从第一个字符开始解析
  2. 遇到无效浮点格式后结束
  3. 只有第一个小数点有效
  4. 忽略前导0
  5. 十六进制数始终为0
  6. 没有小数点或小数点后全为0(转换成整数)

* object 对象类型

· 定义

一组数据或功能的集合

· 声明

var 0 = new Object();

· 属性与方法

1
2
3
4
5
6
7
8
Constructor 保存用于创建当前对象的函数
hasOwnProperty(propertyName) 检测给定属性在当前对象实例中是否存在
isPrototypeOf(object) 检测传入的对象是否是另一个对象的原型
propertyIsEnumerable(propertyName) 检测给定属性是否能用gor-in语句枚举
toLocalString() 返回对象的字符串表示,该字符串与执行环境的地区对应
toString() 返回对象的字符串表示
valueOf() 返回对象的字符串、数值或布尔值表示;通常与toString()的值相同