JavaScript 语法基础

语言基础
语言基本原理

1. 在正则表达式和字符串之外,过多空格忽略。

2. 使用分号终止语句。并根据完整语句行自动插入分号(即若一行末尾没有分号,它会自动插入一个分号)。

3. 弱数据类型。

4. 三种对象:内建对象,主(浏览器)对象,和用户定义对象。

5. 大小写敏感。

6. 注释://或/* …… */

7. 字符串形式:“abc”,或’abc’,但是两种形式可以嵌套:“ ”内可以再嵌套‘’,‘’内又可以再嵌套“”。双引号与单引号是等价的。

JavaScript 有三种主要数据类型、两种复合数据类型和两种特殊数据类型。(即共有:boolean,number,string,null,undefined,object

主要(基本)数据类型是:

  • 字符串 (如:var x=”Hello”; 则x的数据类型为string)
  • 数值 (如:var x=123456; 则x的数据类型为number)
  • 布尔 (如:var x=true; 则x的数据类型为boolean)

复合(引用)数据类型是:

  • 对象 (如:var x=new Number(123); 则x的数据类型为object)
  • 数组

特殊数据类型是:

  • null (如:var x=null; 则x的数据类型为null)
  • undefined (如:var x;或var x=undefined;则x的数据类型为undefined)
基本数据类型

共有5中基本类型,3种含有用数据。

可以使用typeof variablename 得到一个变量的类型(一个特殊情况是typeof null_t会得到object,其中null_t为一个null类型变量)

类型名(均小写)

描述

文字语法

对应的类名

boolean

使用两个值之一

true, false

true, false

Boolean

null

只有一个值。表述缺少数据

null

null

number

包括整数和浮点类型,32位

浮点:最大量级为: 1.797610308 ,最大量级为:2.225010-308. 整数: 231–1 到 –231

十进制表示(包括指数表述)、十六进制表示、八进制表述

Number

string

零个或多个Unicode字符(Netscape 6/IE4之前为Latin-1字符)

 

单引号或双引号界定

String

undefined

仅有一个值,表述还未赋值的数据

undefined

全局属性

数字常量

数字常量

描述

Infinity

无穷大(全局常量)(Infinity)

NaN

非数字(全局常量)(NaN)

Number.NEGATIVE_INFINITY

负无穷(-Infinity)

Number.POSITIVE_INFINITY

正无穷(Infinity)

Number.NaN

非数字(NaN)

Number.MAX_VALUE

最大可表示数(1.7976931348623157e+308)

Number.MIN_VALUE

最小可表示数(5e–324)

字符转义码

转义码

/b

退格

/t

水平制表符

/n

换行

/v

垂直制表符

/f

换页

/r

回车

/"

双引号

/'

单引号

//

反斜线符号

/OOO

Latin-1字符八进制表示法,有效范围:000~377

/xHH

Latin-1字符十六进制表示法,有效范围:00~FF

/uHHHH

Unicode字符十六进制表示法

属性访问与对象创建方法

设类为Object,其一个对象为object.

访问静态属性:Objtct.property Object,method()

访问一般属性:object.property 等价于 object[“property”] 等价于 object[相应的下标]

object.method()

对象创建:[var] instance= new Constructor(arguments);

运算符

描述

语言要素

将两个数相加或连接两个字符串。

加法运算符(+)

将一个值赋给变量。

赋值运算符(=)

对两个表达式执行按位与操作。

按位与运算符(&)

将一个表达式的各位向左移。

按位左移运算符(<<)

对一个表达式执行按位取非(求非)操作。

按位取非运算符(~)

对两个表达式指定按位或操作。

按位或运算符(|)

将一个表达式的各位向右移,保持符号不变。

按位右移运算符(>>)

对两个表达式执行按位异或操作。

按位异或运算符(^)

使两个表达式连续执行。

逗号运算符(,)

返回 Boolean 值,表示比较结果。

比较运算符

复合赋值运算符列表。

复合赋值运算符

根据条件执行两个表达式之一。

条件(三元)运算符(?:)

将变量减一。

递减运算符(--)

删除对象的属性,或删除数组中的一个元素。.

delete 运算符

将两个数相除并返回一个数值结果。

除法运算符(/)

比较两个表达式,看是否相等。

相等运算符(==)

比较两个表达式,看一个是否大于另一个。

大于运算符(>)

比较两个表达式,看一个是否大于等于另一个。

大于等于运算符(>=)

比较两个表达式,看是否值相等并具有相同的数据类型。

严格相等运算符(===)

给变量加一。

递增运算符(++)

比较两个表达式,看是否不相等。

不等运算符(!=)

返回一个 Boolean 值,表明某个对象是否为特定类的一个实例。

instanceof 运算符

比较两个表达式,看是否一个小于另一个。

小于运算符(<)

比较两个表达式,看是否一个小于等于另一个。

小于等于运算符(<=)

对两个表达式执行逻辑与操作。

逻辑与运算符(&&)

对表达式执行逻辑非操作。

逻辑非运算符(!)

对两个表达式执行逻辑或操作。

逻辑或运算符(||)

将两个数相除,并返回余数。

取模运算符(%)

将两个数相乘。

乘法运算符(*)

创建一个新对象。

new 运算符

比较两个表达式,看是否具有不相等的值或数据类型不同。

非严格相等运算符(!==)

包含 JScript 运算符的执行优先级信息的列表。

运算符优先级

对两个表达式执行减法操作。

减法运算符(-)

返回一个表示表达式的数据类型的字符串。

typeof 运算符

表示一个数值表达式的相反数。

一元取相反数运算符(-)

在表达式中对各位进行无符号右移。

无符号右移运算符(>>>)

避免一个表达式返回值。

void 运算符

运算符优先级

下表按从最高到最低的优先级列出 JScript 运算符。具有相同优先级的运算符未标明的按从左至右的顺序求值。

运算符

描述

. [] ()

字段访问、数组下标、函数调用以及表达式分组

++ -- - ~ ! delete new typeof void

(从右向左)一元运算符、返回数据类型、对象创建、未定义值

* / %

乘法、除法、取模

+ - +

加法、减法、字符串连接

<< >> >>>

移位

< <= > >= instanceof

小于、小于等于、大于、大于等于、instanceof

== != === !==

等于、不等于、严格相等、非严格相等

&

按位与

^

按位异或

|

按位或

&&

逻辑与

||

逻辑或

?:

(从右向左)条件

= oP=(即:*=, /=, %=, +=, –=, <<=, >>=, >>>=, &=, ^=, |=

(从右向左)赋值、运算赋值

,

多重求值

保留词

break

delete

function

return

typeof

case

do

if

switch

var

catch

else

in

this

void

continue

false

instanceof

throw

while

debugger

finally

new

true

with

default

for

null

try

 
为将来保留的词

abstract

double

goto

native

static

boolean

enum

implements

package

super

byte

export

import

private

synchronized

char

extends

int

protected

throws

class

final

interface

public

transient

const

float

long

short

volatile

正则表达式语法

一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

这里有一些可能会遇到的正则表达式示例:

JScript

VBScript

匹配

/^/[ /t]*$/

"^/[ /t]*$"

匹配一个空白行。

//d{2}-/d{5}/

"/d{2}-/d{5}"

验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成。

/<(.*)>.*<///1>/

"<(.*)>.*<///1>"

匹配一个 HTML 标记。

"^-[0-9]*[1-9][0-9]*$"

 

负整数

"^-?/d+$"

 

整数

"^/d+(/./d+)?$"

 

非负浮点数(正浮点数 + 0)

"^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*

[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$"

 

正浮点数

"^((-/d+(/./d+)?)|(0+(/.0+)?))$"

 

非正浮点数(负浮点数 + 0)

"^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*

[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$"

 

负浮点数

"^(-?/d+)(/./d+)?$"

 

浮点数

"^[A-Za-z]+$"

 

由26个英文字母组成的字符串

"^[A-Z]+$"

 

由26个英文字母的大写组成的字符串

"^[a-z]+$"

 

由26个英文字母的小写组成的字符串

"^[A-Za-z0-9]+$"

 

由数字和26个英文字母组成的字符串

"^/w+$"

 

由数字、26个英文字母或者下划线组成的字符串

"^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$"

 

email地址

"^[a-zA-z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$"

 

url

下表是元字符及其在正则表达式上下文中的行为的一个完整列表:

字符

描述

^

匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '/n' 或 '/r' 之后的位置。

(注意:

1.如果没有设置RegExp 对象的 Multiline 属性,^一定对应一个字符串的开头,这个“开头”用字符的话说,就是不是任何字符,也不能是/n,/r等字符

2.如果设置了RegExp 对象的 Multiline 属性,^匹配’/r’,’/n’,”/n/r”,”/r/n”或者匹配字符串的开头,即不是任何字符

)

$

匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '/n' 或 '/r' 之前的位置。

(注意:与上类似)

  

/

将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'/n' 匹配一个换行符。序列 '//' 匹配 "/" 而 "/(" 则匹配 "("。

  

*

匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。 * 等价于{0,}。

+

匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。

?

匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。

{n}

n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。

{n,}

n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。

{n,m}

mn 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。刘, "o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。

 

?

当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。

  

(pattern)

匹配pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0$9 属性。要匹配圆括号字符,请使用 '/(' 或 '/)'。

(?:pattern)

匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。

(?=pattern)

正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

(?!pattern)

负向预查,在任何不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始

  

x|y

匹配 xy。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。

[xyz]

字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。

[^xyz]

负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。

[a-z]

字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。

[^a-z]

负值字符范围。匹配任何不在指定范围内的任意字符。例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。

  

.

匹配除 "/n" 之外的任何单个字符。要匹配包括 '/n' 在内的任何字符,请使用象 '[./n]' 的模式。

/b

匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er/b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。

/B

匹配非单词边界。'er/B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。

/cx

匹配由x指明的控制字符。例如, /cM 匹配一个 Control-M 或回车符。 x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。

/d

匹配一个数字字符。等价于 [0-9]。

/D

匹配一个非数字字符。等价于 [^0-9]。

/f

匹配一个换页符。等价于 /x0c 和 /cL。

/n

匹配一个换行符。等价于 /x0a 和 /cJ。

/r

匹配一个回车符。等价于 /x0d 和 /cM。

/s

匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ /f/n/r/t/v]。

/S

匹配任何非空白字符。等价于 [^ /f/n/r/t/v]。

/t

匹配一个制表符。等价于 /x09 和 /cI。

/v

匹配一个垂直制表符。等价于 /x0b 和 /cK。

/w

匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。

/W

匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。

/xn

匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如, '/x41' 匹配 "A"。'/x041' 则等价于 '/x04' & "1"。正则表达式中可以使用 ASCII 编码。.

  

/num

匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)/1' 匹配两个连续的相同字符。

/n

标识一个八进制转义值或一个后向引用。如果 /n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。

/nm

标识一个八进制转义值或一个后向引用。如果 /nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 /nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若 nm 均为八进制数字 (0-7),则 /nm 将匹配八进制转义值 nm

/nml

如果 n 为八进制数字 (0-3),且 ml 均为八进制数字 (0-7),则匹配八进制转义值 nml

  

/un

匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, /u00A9 匹配版权符号 (?)。

JavaScript内部对象(Buile_in Object,共11个)

描述

语言要素

提供对创建任何数据类型的数组的支持。

Array 对象

创建一个新的 Boolean 值。

Boolean 对象

提供日期和时间的基本存储和检索。

Date 对象

包含在运行 JScript 代码时发生的错误的有关信息。

Error 对象

创建一个新的函数。

Function 对象

是一个内部对象,目的是将全局方法集中在一个对象中。

Global 对象

一个内部对象,提供基本的数学函数和常数。

Math 对象

表示数值数据类型和提供数值常数的对象。

Number 对象

提供所有的 JScript 对象的公共功能。

Object 对象

存储有关正则表达式模式查找的信息。

RegExp 对象

提供对文本字符串的操作和格式处理,判定在字符串中是否存在某个子字符串及确定其位置。

String 对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript语法基础包括数据类型、运算符、选择结构和循环结构。在JavaScript中,所有的类型都是用var关键字来修饰。常见的数据类型包括字符串、数字、布尔值、数组和对象等。 JavaScript中的运算符包括算术运算符、比较运算符、逻辑运算符和赋值运算符等。算术运算符用于执行基本的数学运算,比较运算符用于比较两个值的大小关系,逻辑运算符用于组合多个条件进行逻辑判断,赋值运算符用于给变量赋值。 选择结构在JavaScript中主要通过if语句和switch语句实现。if语句根据条件的真假来执行相应的代码块,switch语句则根据表达式的值来选择执行相应的代码块。选择结构可以帮助我们根据不同的条件来执行不同的代码逻辑。 循环结构在JavaScript中主要有for循环、while循环和do-while循环。for循环是最常用的循环结构,它通过初始化、判断条件和自增或自减步长来控制循环的执行次数。while循环和do-while循环则根据条件的真假来决定是否执行循环体中的代码。循环结构能够重复执行一段代码,可以用于处理需要重复操作的任务。 综上所述,JavaScript语法基础包括数据类型、运算符、选择结构和循环结构,它们是编写JavaScript程序的基础要素。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【JavaScript】基本语法大全](https://blog.csdn.net/weixin_64916311/article/details/129136028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值