《JavaScript高级程序设计(第3版)》第三章总结一

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010011236/article/details/85380032

一、语法

(1)JavaScript中的一切(变量、函数名、操作符)都**区分大小写**。

(2)标识符命名规则:以(字母、下划线_、美元符号\$)开始,后接(字母、下划线_、美元符号$、数字)。

(3)ES5引入了严格模式的概念。

// 在全局变量的开头
"use strict";

// 或则在函数作用域的开头
function doSomthing() {
    "use strict";
}

(4)如果语句省略分号,则有解析器确定语句的结尾。

二、数据类型

  数据类型
基本数据类型 Undefined
Null
Boolean
Number
String
复杂数据类型 object

2.1、typeof操作符

typeof操作符来检测变量的数据类型。typeof操作符的操作数可以是变量,也可以是数值字面值。

注意:typeof是一个操作符而不是函数,因此可以使用 typeof (message) 或 typeof message,其中的括号不是必须的。

typeof操作符可能返回下列某个字符串

  • "undefined"——如果这个值未定义/未初始化

  • "boolean"——如果这个值是布尔值

  • "string"——如果这个值是字符串

  • "number"——如果这个值是数值

    扫描二维码关注公众号,回复: 4710730 查看本文章
  • "object"——如果这个值是 对象 或 null(null被认为是一个空的对象引用)

  • "function"——如果这个值是 函数

2.2、undefined类型

  • 如果变量未初始化,其值默认为 undefined,且其 typeof 为 "undefined"。

  • 如果变量未声明,则只能使用 typeof 对其进行操作,其 typeof 为 "undefined"。

var message = undefined;
console.log(typeof message); // "undefined"

2.3、null类型

null值表示一个空对象指针,在做相等判断时(null == undefined)结果为 true。

2.4、boolean 类型

可以对任何数据类型的值调用 Boolean() 函数,而且总返回一个 Boolean 值。

数据类型 转换为true值 转换为false值
Boolean true false
String 任何非空字符串(空格字符) 空字符串('' 或 "")
Number 任何非零数值(包括无穷大) 0 或 NaN
Object 任何对象 null
Undefined n/a:不适用 undefined

2.5、number 类型

number类型包括:整数和浮点数。

isFinite()函数检测传入的值位于JavaScript中最小和最大数值之间时,返回true。

(1)NaN:表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。

特点:

  • 任何涉及 NaN 的操作(例如 NaN/10)都会返回 NaN
  • NaN与任何值都不相等,包括NaN本身(即alert( NaN == NaN ); // false)

isNaN():该函数会接收一个参数,如果该参数不能转化为 数值,则返回 true。
(2)转换为数值的函数:Number()、parseInt()、parseFloat()。

  • Number()
传入参数 结果
Boolean true为1,false为0
数值 原样显示
null 0
undefined NaN
字符串
  1. 如果字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,而"011"会变成11(前导零被忽略);
  2. 如果字符串中包含**有效的浮点格式**,则将其转换为对应的浮点数值(忽略前导零);
  3. 如果字符串中包含有效的十六进制格式,则将其转换为相同大小的十进制整数值;
  4. 如果字符串为空(不包含任何字符),则将其转换为0;
  5. 如果字符串包含除上述格式之外的字符,则将其转换为 NaN。
对象 则调用对象的 valueOf() 方法,然后依照前面的规则转换返回的值。如果转换的结果是 NaN,则调用对象的 toString() 方法,然后再次依照前面的规则转换返回后的字符串值。
// 测试代码
var num = Number(true);    // 1
var num1 = Number(false);    // 0
var num2 = Number(20);    // 20
var num3 = Number('');    // 0
var num4 = Number('11');    // 11
var num5 = Number('11ab');    //NaN
var num6 = Number('11.1.1');    // NaN
var num7 = Number('11.1');    // 11.1
  • parseInt():用于把字符串转换为数值。忽略字符串前面的空格,直到找到第一个非空字符。

       如果第一个字符不是数字字符或者负号,parseInt()就会返回 NaN;也就是说,用parseInt()转

       换空字符串会返回 NaN (Number()对空格字符返回0)。

// 测试代码
var num5 = parseInt('070'); // 结果为:70,因为在ES5中parseInt()已经不能解析八进制了
var num5 = parseInt('070', 8); // 可以用这种方法告诉JS按照八进制转换为十进制显示
var num6 = parseInt('a', 16); // 按照十六进制转换结果为:10
  • parseFloat():用于把字符串转换为数值。从第一个字符开始解析每个字符。而且一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字为止。字符串中第一个小数点有效,第二个小数点无效;始终会忽略前导零,且十六进制格式的字符串始终转换成0。

注意:(1)parseFloat() 只能解析十进制值;(2)十六进制格式的字符串始终会转换成0。

// 测试代码
var num1 = parseFloat('1234blue'); // 1234
var num2 = parseFloat('0xA'); // 0,十六进制格式的字符串始终会转换成0
var num3 = parseFloat('22.5'); // 22.5
var num4 = parseFloat('22.34.5'); // 22.34
var num5 = parseFloat('0908.5'); // 908.5
var num6 = parseFloat('3.125e7'); // 31250000

2.6、string类型

string类型具有length属性,该属性返回字符串的长度。

(1)字符串特点

ES中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,

首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。

(2)转换为字符串

方法一:使用 toString() 方法

几乎每个值【数值、布尔值、对象、字符串】都有 toString() 方法。但 null 和 undefined 没有 toString() 方法。

在调用数值的 toString() 方法时,可以传递一个参数:输出数值的基数。

var num = 10;
console.log(num.toString(2));    // "1010"

方法二:使用转型函数 String(),这个函数能够将任何类型的值转换为字符串。

String()函数遵循下列转换规则:

  • 如果值有toString()方法,则调用该方法并返回结果
  • 如果值是null,则返回 "null"
  • 如果值是undefined,则返回"undefined"

注意:如果把某个值转换为字符串可以直接 + 一个空字符(' ')。

2.7、object类型

ES中的对象就是一组数据和功能的集合。

在ES中,Object 类型是所有它的实例的基础。换句话说, Object 类型所具有的任何属性和方法也同样存在于更具体的对象中。

  • Object 的每个实例都具有下列属性和方法:
  • constructor:保存着用于创建当前对象的函数。
  • hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。

       其中,作为参数的属性名(propertyName)必须以字符串形式指定(例如:o.hasOwnProperty('name'))。

  • isPrototypeOf(object):用于检查传入的对象是否是当前对象的原型。
  • propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用 for-in 语句来枚举。与

       hasOwnProperty() 方法一样,作为参数的属性名必须以字符串形式指定。

  • toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
  • toString():返回对象的字符串表示。
  • valueOf():返回对象的字符串、数值或布尔值表示。通常与 toString() 方法的返回值相同。

注意:因为在ES中 Object 是所有对象的基础,因此所有对象都具有这些基本的属性和方法。

猜你喜欢

转载自blog.csdn.net/u010011236/article/details/85380032