您的位置:首页 > Web前端 > JavaScript

JavaScript高级程序设计(第三版)学习笔记(三) JavaScript语法 草稿

2018-03-08 21:48 525 查看

一、语法特性

 程序是人脑思维实现和机器重复劳动的结合体,本质是数据和算法构建。

 JavaScript语法参考了c、c++、java等语言的特点,一门高级编程语言(类自然语言)由变量、关键字、操作符、流控制语句、内置对象等基本元素构成。

1、标识符

 高级语言一般都用标识符的来定义变量、关键字、操作符、语句等,就像人类现实中给人事物起名字,标识符可以有英文、数字、下划线_、美元符号$组成,第一个字符不能为数值,有可能避免解析时与实际数字混淆。

 标识符一般用驼峰命名法,即首个单词全部小写,从第二个开始首字母大写,比如:

doSomethingImportant


关键字:指有特殊含义的标识符,比如定义变量用var num,把num作为一个变量来处理,而如果用function num,则num是一个函数名,浏览器对两者的解析方式是不同的。简单来说JavaScript程序由标识符和操作符构成。

2、区分大小写

 不光指变量,如var a和 var A,包括操作符、函数,比如操作符typeof,如果用成typeOf则提示语法错误(未定义);再比如Number()函数,写成number()也是同样的道理。

alert(typeOf 123);//语法错误,应为typeof 123
alert(number("123"));//语法错误,应为Number(“123”)


3、注释

单行:两个反斜杠 //单行注释

块级(多行):开始一个反斜杠加*号(/*),结束是一个*加反斜杠(*/),但往往为了代码的可读(醒目)性,一般在每行前加入*。

/*
* 块级注释
* 除开始和结束行,每一行前都加入*,便于阅读。
*/


二、数据类型

JavaScript是弱数据类型,是指定义变量时无需指定该变量的具体类型,虽然更方便的定义变量,但在使用时更要清楚变量存放数据的类型,否则程序会引起无法预知的错误.

语法:关键词var + 变量名,如var num;


JavaScript的数据类型:

基本类型1:

1、 Number(数值)如整数 123 ;浮点型(双精度度)123.45。

重点:无效值(NaN)和无限值(Infinity)

如果一个算数运算得到一个非数值,一般编程语言直接提示语法错误,系统停止运行。

但JS会返回一个无效值NaN,这样即提示程序员无效数值,又可以保证程序继续运行,比如:

alert(Number("abc"));
alert(0/0);


也可以用函数isNaN()检测数据是否为无效数:

alert(isNaN(NaN));


如果运算结果是一个超出数值最大值(Number.MAX_VALUE),则返回Infinity表示,负数用-Infinity表示,也可以用函数isInfinity()检测,如

alert(isInfinity(1/0));


2. String(字符串)如“abc”、“a”、“123”、“var”,用双引号包含内容,也可以用单引号。

alert("123");
alert("var");
alert('var');


3、 Boolean(布尔值),只有两个值,即true和false。

基本类型2:

4、 UndefinedNull

Undefined和Null类型值只有一个,分别为undefined、null。

undefined为声明但未初始化的变量,但使用未声明的变量属于语法。

var a;

alert(a);

alert(b);

null为空指针对象。

定义一个变量时,可以不初始化,但直接使用一般编程语言就属于语法错误,但JS中则为undefined,不会终止程序的继续运行。所以如果为了后续存储对象,可以在初始化时赋值null即空指针对象,这样在使用变量时:

var obj = null;



if(obj != null){

//

}

而undefined一般不需要显时赋值,主要用作判断变量是否初始化值。这两种类型提供了语法的精准性,但也要付出更多代码来处理这两种情况,另外undefined派生之null,所以两者相等返回true。

alert(undefined == null);

引用类型

5、 Object(对象),是包含无序键值对的结构,创建方式如下:

var obj = new Object();//可以省略(),但不建议。

三、类型转换

上面几种数据类型在涉及到操作符运算、流控制语言需要进行数据的强制或自动转换

转换函数:

1、数值Number()、parseInt()、parseFloat()。

区别:

对于字符串,遇到数据中包含无效数值,Number()返回NaN,而parseInt则从开始有效数值截取到无效数值前。

对于布尔值,Number(true)等于1,反之Number(false)则为0

parseInt()可以指定基数,一般都指定为10进制

parseInt(“0123abc”,10);

null、undefined都为NaN

操作符(自动转换)

一元符号:+、-

二元符号:+、-

一元符号:++、–

先调用Number()函数把操作数转换为数值

2、字符串 toString()、String()

区别:null和undefined无法调用toString()方法,但String()函数可以把任何数据转换为字符串,对象则调用valueOf()返回空字符,则继续调用toString()方法。

操作符:

+

当一个表达式中包含字符串时,系统会把其它数据转换为字符串,比如

alert(4 + “1”);

3、布尔值Boolean()

可以把任何值转换为布尔值。

操作符:

逻辑符号 && ||

流程控制语句 if、while、switch等

先调用Boolean()函数把数值转换为布尔值。

四、操作符

算数:一元:+ - ++ – 二元:+ - * / %

逻辑:与&& 、或||、非 !

在非数值情况

与:第一个对象为false,则取第一个原值;否则取第二个对象。

或:

比较: > < >= <= == != === !==

等于与恒等于的区别,前者进行类型转换,后者原型比较。

五、语法

If (3 == 4){

}else if {

}

switch(){

Case: ; break

Default:

}

do{

}while()

While(){

}

For(var i; i<;i++){

}

六、函数

封装代码块、随时随地调用

实参与形参的数据可以不一致,因为实参是通过无限长度的数组arguments来接收的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: