当前位置:   article > 正文

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

javascript高级程序设计(第三版)

一、语法特性

 程序是人脑思维实现和机器重复劳动的结合体,本质是数据和算法构建。
 JavaScript语法参考了c、c++、java等语言的特点,一门高级编程语言(类自然语言)由变量、关键字、操作符、流控制语句、内置对象等基本元素构成。

1、标识符
 高级语言一般都用标识符的来定义变量、关键字、操作符、语句等,就像人类现实中给人事物起名字,标识符可以有英文、数字、下划线_、美元符号$组成,第一个字符不能为数值,有可能避免解析时与实际数字混淆。
 标识符一般用驼峰命名法,即首个单词全部小写,从第二个开始首字母大写,比如:

doSomethingImportant
  • 1

关键字:指有特殊含义的标识符,比如定义变量用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”)
  • 1
  • 2

3、注释

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

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

二、数据类型

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

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

JavaScript的数据类型:
基本类型1:

1、 Number(数值)如整数 123 ;浮点型(双精度度)123.45。
重点:无效值(NaN)和无限值(Infinity)
如果一个算数运算得到一个非数值,一般编程语言直接提示语法错误,系统停止运行。
但JS会返回一个无效值NaN,这样即提示程序员无效数值,又可以保证程序继续运行,比如:

    alert(Number("abc"));
    alert(0/0);
  • 1
  • 2

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

alert(isNaN(NaN));
  • 1

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

alert(isInfinity(1/0)); 
  • 1

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

    alert("123");
    alert("var");
    alert('var');
  • 1
  • 2
  • 3

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来接收的。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号