javascript高程第三章部份笔记

1. 语法

1.1 辨别大小写

变量、函数名和操纵费都辨别大小写。

1.2 标识符

标识符指变量、函数、属性的名字,或许函数的参数。标识符按以下划定规矩组合:

第一个字符必需是一个字母,下划线(_)或一个美圆标记($)。

其他字符可所以字母、下划线、美圆标记或许数字。

标识符采纳驼峰大小写花样,也就是第一个字母小写,剩下的每一个单词首字母大写,比方:

firstSecond

myCar

doSomethingImportant

1.3 解释

运用c作风的解释

//单行解释

/*
多
行
注
释
*/

1.4 严厉形式

在顶部增加以下代码进入严厉形式:
“use strict”;
(此处不穷究)

1.5 语句

ECMAScript中的语句以一个分号末端,假如省略了分号,那末由剖析器肯定语句的末端。
虽然语句末端的分号不是必需的,但我们发起任何时刻都不要省略他
加上分号能够防止许多毛病(比方不完整的输入),开发人员也能够放心肠经由过程删除过剩的空格来紧缩ECMAScript代码。加上分号也会在某些情况下增长代码的机能,减轻剖析器的累赘。

在前提掌握语句中,纵然代码块里只需一条语句也运用代码块。

if (test)           //有用但轻易失足,不要运用
    alert(test);
    
if (test){                  //引荐运用
    alert(test);
}

2. 关键字和保留字

ECMA-262形貌了一组具有特定用处的关键字,以及一组不能用作标识符的保留字

3. 变量

ECMAScript的变量是松懈范例的,所谓松懈范例就是能够用来保留任何范例的数据。换句话说,每一个变量悄悄是一个用于保留值的占位符罢了。运用var操纵符定义变量(var是一个关键字),后跟变量名(即标识符)。
省略var操纵符,能够在函数中建立全局变量:

function test(){
    message = "hi";      //message为全局变量
}
test();
alert(message);

能够运用一条语句定义多个变量

var message = "hi",
    found = false,
    age = 29;
    

由于ECMAScript是松懈范例的,因而运用差别范例初始化变量的操纵能够放在一条语句中完成。

4. 数据范例

ECMAScript中有5中简朴数据范例(也称为基础数据范例):Undefined,Null,Boolean,Number,String
另有一种庞杂数据范例——Object,Object本质上是有一组无序的名值对构成的。
ECMAScript不支持任何建立自定义范例的机制,而一切值终究都将是上述6中数据范例之一。
ECMAScript具有动态性,因而没有再定义其他数据范例的必要了。

4.1 typeof操纵符

对一个值运用typeof操纵符能够返回以下某个字符串

“underfined”——假如这个值未定义

“boolean”——假如这个值是布尔值

“string”——假如这个值是字符串

“number”——假如这个值是数值

“object”——假如这个值是对象

“function”——假如这个值是函数

以下是几个例子:

var message = "some string";
alert(typeof message);  //string
alert(typeof(message)); //string
alert(typeof 95);   //number

这几个例子申明,typeof操纵符的操纵数可所以变量(message),也可所以数值字面量。注重,typeof是一个操纵符而不是函数,因而例子中的圆括号只管能够运用,然则不是必需的。
有些时刻,typeof操纵符会返回一些使人疑惑然则技术上却准确的值。比方,挪用typeof null会返回”object”。由于特别值”null”被认为是一个空的对象援用。

从技术上讲,函数在ECMAScript中是对象,不是一种数据范例。但是,函数也确切有一些特别的属性,因而经由过程typeof操纵符来辨别函数和其他对象是有必要的。

4.2 Undefined范例

Undefined范例只需一个值,即特别的Undefined。在运用var声明变量但未对其加以初始化时,这个变量的值就是undefined,如:

var message;
alert(message == undefined);  //true

字面值undefined的重要目标是比较。

包含undefined值的变量僧人未定义的变量是不一样的,例子:

var message;
alert(message);//underfined
alert(asnfoiasnfi);//报错

但是,对未初始化的变量实行typeof操纵符会返回undefined值,对未声明的变量实行typeof操纵符一致也会返回undefined值。

显现地初始化变量是明智的挑选,如许,当typeof操纵符返回”undefined”值时,我们就晓得该变量是没有被声明,而不是没有初始化。

4.3 Null范例

Null范例是第二个只需一个值的数据范例,这个特别的值是null。从逻辑关系看,null值示意一个空对象指针,所以typeof操纵符检测null值会返回object

假如定义的变量预备在未来用于保留对象,那末最好将该变量初始化为
null而不是其他值。

如许一来,只需检测null值就能够晓得响应的变量是不是已保留了一个对象的援用。

只需意在保留对象的变量还没有真正保留对象,就应该明确地让变量保留null值.

if (car != null){
//对car对象实行某些操纵
}

undefined值是派生自null值的,因而ECMA-262划定对它们的相称性测试要返回true。

alert(null == undefined);   //true

4.4 Boolean范例

Boolean范例只需两个字面值:truefalse。这两个值和数字值不是一回事,true不一定即是1,false不一定即是0。
ECMAScript中一切范例的值都有与这两个Boolean值等价的值。挪用转型函数Boolean(),如:

var message = "Hello world!";
var messageAsBoolean = Boolean(message);

下表给出种种数据范例以及其对应的转换划定规矩。

数据范例转换为true的值转换为false的值
Booleantruefalse
String任何非空字符串” “(空字符串)
Number任何非零数字值(包含无穷大)0和NaN
Object任何对象null
Undefinedundefined

这对明白流掌握语句(如if语句)自动实行响应的Boolean转换非常重要:

var message = "Hello world!:;
if (message){  //自动转换
    alert("Value is true");
}

4.5 Number范例

Number范例运用IEEE754花样来示意整数和浮点数值。
八进制字面值的第一位必需是0,十六进制字面值的前两位必需是0x,在举行算术盘算时,一切八进制和十六进制示意的数值终究都将被转换成十六进制。

var intNum = 55;  //整数
var octalNum1 = 070;   //八进制的56
var octalNum2 = 079;   //无效的八进制,剖析为79
var hexNum1 = 0xA;  //十六进制的10
var hexNum2 = 0x1f; //十六进制的31
    原文作者:xzhx
    原文地址: https://segmentfault.com/a/1190000013061761
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞