JavaScript的核心(一)

词法结构

1. 字符集
使用 Unicode码
2. 大小写 
Javascript是区分大小写的。关键字,变量,函数名和所有的标识符都必须采取一致的大小写形式。HTML是不区分大小写,两者要注意区分。
3. 空白符和换行符
javascript会忽略程序标识符之间的空格,多数情况下,也会忽略换行符。
4. 可选的分号
 Javascrip使用分号将语句分隔开;如果语句独占一行,通常可以省略语句之间的分号。
  a=1;b=2;
  等价于
  a=1
  b=2
  javascript并不是在所有的换行处都填补分号(所以说大部分时候换行符可以忽略),只有在缺少了分号就无法正确解析代码的时候,javascript才会填补分号。

	var a
  a=2
  console.log(a)

将解析为 var a;a=2;console.log(a);因为不添加分号代码无法解析。

	var y=x+z
 	(a+b).toString()

将被解析成var y=x+z(a+b).toString();
  如果当前语句和下一行语句无法合并解析,javascript则在第一行后插入一个分号;这是通用规则,但是有两个意外
  1、return、break和continue之后紧跟换行,javascript会在换行处填补分号;

	return 
  true;

会被解析成 return; true;

2、++ 和–运算符
  如果作为后缀表达式,他和表达式应该在一行,负责,行位将填补分号;同时,++将和下一行一起解析

	x
  ++
  y

将解析成x;++y; 
5. 注释
单行注释:// 注释内容
多行注释:/* 注释内容注释内容 /
/

*这是多行的另一种注释
*多行注释
* /
6. 直接量

1.2   //数字

"aaaaavvvvvv"  //字符串

true/false   //布尔值

/javascrpt/gi  //正则表达式直接量
 *正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列符合某个语法规则的字符串,即按照某种规则来匹配符合条件的字符串*。
 JavaScript中的正则表达式用RegExp对象表示,RegExp对象通过一种特殊的直接量语法来创建,定义为包含在一对斜杆(/)之间的字符,就好像通过s引号包裹字符的方式来定义字符串直接量一样
 正则表达式中的所有字母和数字都是按照字面含义进行匹配的,JavaScript正则表达式语法也支持非字母的字符匹配,而这些字符需要通过反斜线(\)作为前缀进行转义。
null  //空

{x:1,y=2} //对象

[1,2,3,4] //数组

7. 标识符
javascript中的标识符必须以字母、下划线或$开始,后续的字符可以是字母、数字、下换线或者美元符,数字不能作为标识符的首字母出现的。
8. 保留字
Javascript把一些标识符拿出来用作自己的关键字,因此,在程序中不能再把这些关键字用作标识符
保留的JavaScript的关键字
 保留的JavaScript的关键字
注意:如果把关键字用作变量名或函数名,可能得到诸如 “Identifier Expected”(应该有标识符、期望标识符)这样的错误消息。

应当避免使用的JavaScript关键字

避免使用的JavaScript关键字
javascript的具体实现可能定义独有的全局变量和函数,每一种特定的javascrip运行环境(客户端、服务器端)都有自己的一个全局属性、函数列表。Javascript预定义了很多全局变量和函数,应避免把他们的名字用作变量名和函数名。

数据类型和值

1. 数字
1.1整形直接量
javascript数字格式允许精确表示-9007199254740992(负2的53次方)和2的53次方之间的所有整数,但是使用超过这个范围的整数就会失去位数的精确性。需要注意的是,javascript中的某些整数运算(尤其是逐位运算符)是对32位的整数执行的,它们的范围从-2147483638(负2的31次方)到2147483638(2的31次方)
1.2:八进制和十六进制的直接量
需要注意的是:最好不要使用以0开头的整形直接量
1.3浮点型直接量
浮点型直接量可以具有小数点,它们采用的是实数的传统语法。一个实数可以被表示为整数部分加小数点和小数部分。
1.4数字的使用
±×÷和Math类的方法运算
1.5数值转换
javascript可以把数字格式化为字符串或把字符串解析为数值
1.6特殊的数值
当一个浮点值大于所能表示的最大值时,其结果是一个特殊的无穷大值,javascript将其输出为Infinity。相应的,有-Infinity。
当一个算数运算(如用0除以0)产生了未定义的结果或错误时,就会返回另一个特殊的javascript数值:NaN。这个值需要用isNaN来检测,因为他自己和自己都不严格相等(===)。
isFinite()用来检测一个数字是否是NaN、Infinity或-Infinity。
javascript为每个特殊的值都定义了常量:
Infinity 无穷大的特殊值
NaN 特殊的非数字值
Number.MAX_VALUE 可表示的最大数字
Number.MIN_VALUE 可表示的最小数字(接近0)
Number.NaN 特殊的非数字值
Number.POSITIVE_INFINITY 表示正无穷大的特殊值
Number.NEGATIVE_INFINITY 表示负无穷大的特殊值

2. 字符串
字符串(string)是由Unicode字符、数字、标点符号等组成的序列,它是javascript用来表示文本的数据类型。javascript中没有char
2.1字符串直接量
单引号里可以有双引号,双引号里可以有单引号,换行要用\n
2.2字符串直接量中的转义序列
在javascript的字符串中,反斜线(\)具有特殊的用途。在反斜线 符号后加一个字符就可以表示在字符串中无法出现的字符。
\0 NUL字符(\u0000)
\b 退格符(\u0008)
\t 水平制表符(\u0009)
\n 换行符(\u000A)
\v 垂直制表符\(\u000B)
\f 换页符(\u000C)
\r 回车符(\u000D)
" 双引号(\u0022)
’ 撇号或单引号(\u0027)
\ 反斜线符(\u005C)
2.3字符串的使用
+连接字符串
length属性来表示字符串的长度
javascript的字符串和javascript数组一样是以0开始索引的。
3. 布尔值
“true” 和"false"一个布尔值代表的是一个“真值”,他说明了某个事物是真是假。
4. 函数
javascript的一个重要特性就是javascript代码可以对函数进行操作。javascript中的函数是真正的数值,可以被存储在变量、数组和对象中,而且函数还可以作为参数传递给其他函数。

用函数定义函数square()

function square(x){
	return x*x;
}

用函数直接量定义

var square = function(x){
	return x*x;
}

用构造函数方法

var square= new Function("x","return x*x;")

5. 对象
对象(object)是已命名的数据的集合。javascript中的对象可以作为关联数组使用。
创建对象:new Object()
对象直接量:{}

var square={
	sleft:{x:1,y:2},
	sright:{x:3,y:4}
}

6. 数组
数组(array)和对象一样是数值的集合。
数组的创建:new Array()
数组直接量:[] var spareArray = [1,5];//中间有3个是未定义的
嵌套:var mas= [ [1,2,3],[4,5,6],[7,8,9] ]
7. null
对象类型的特殊值。typeof运算结果为object。
8. undefined
初始值是undefined。
如果无法确认自己使用的javascript实现是否有变量undefined,只需要我们自己声明一下:
var undefined;//
只声明这个变量,不初始化它,就可以确保它的值为undefined。
9. Date对象
可以用Date操作时间和日期的对象类,我们可以使用new和构造函数Date()创造一个Date对象

var now=new Date();   //存放当前 日期和时间的对象
var xmas=new Date(1999,10,30)   //月份是从0开始算

10. 10.正则表达式
正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列符合某个语法规则的字符串,即按照某种规则来匹配符合条件的字符串。
11. Error对象
每个Error对象都有一个message属性,它存放的是javascript实现特定的错误消息。预定义的错误对象的类型有Error、EvalError、RangeError、RefrenceError、SyntaxError、TypeError和URIError

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 计算机科学与技术 目 录 1.1 JavaScript内核系列 第1章 前言及概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 JavaScript内核系列 第2章 基本概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.3 JavaScript内核系列 第3章 对象与JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 1.4 JavaScript内核系列 第4章 函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 1.5 JavaScript内核系列 第5章 数组 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 1.6 JavaScript内核系列 第6章 正则表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 1.7 JavaScript内核系列 第7章 闭包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 1.8 JavaScript内核系列 第8章 面向对象的JavaScript(上) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105 1.9 JavaScript内核系列 第8章 面向对象的JavaScript(下) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118 1.10 JavaScript内核系列 第9章 函数式的Javascript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值