js语法概述

# 语法概述

## JavaScript的引入方式

1. 直接在`script`标签内部书写代码

```html

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

<script type="text/javascript">

console.log(‘hello, world‘);

</script>

</head>

<body>

</body>

</html>

```

2. 通过`script`标签的`src`属性,引入外部的JavaScript文件

```html

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

</head>

<body>

<script type="text/javascript" src="./index.js"></script>

</body>

</html>

```

## 数据类型

在JavaScript中一种有5种原始类型

- 数值类型(`number`)

- 字符串类型(`string`)

- 布尔值类型(`boolean`)

- null

- undefined

## 变量的命名规则

命名规则:

- 第一个字符可以是任意Unicode大小写字母,以及美元符号($)和下划线(_)。

- 第二个字符及后面的字符,还可以用数字。

- 不能使用保留字作为变量名

##### *JavaScript保留字*

`abstract`

`boolean` `break` `byte`

`case` `catch` `char` `class` `const` `continue`

`debugger` `default` `delete` `do` `double`

`else` `enum` `export` `extends`

`false` `final` `finally` `float` `for` `function`

`goto`

`if` `implements` `import` `in` `instanceof` `int` `interface`

`long`

`native` `new` `null`

`package` `private` `protected` `public`

`return`

`short` `static` `super` `switch` `synchronized`

`this` `throw` `throws` `transient` `true` `try` `typeof`

`var` `void` `volatile`

`while` `with`

*example*

#### 合法的命名规则

`arg0`

`_tmp`

`$elem`

`π`

#### 不合法的命名规则

`1a`

`23`

`***`

`a+b`

`-d`

`var`

`return`

## 操作符

ECMA-262描述了一组用于操作数据值的操作符,包括算术操作符(如加号和减号)、位操作符、关系操作符和相等操作符。

#### 一元操作符

1. 递增和递减操作符(`++` `--`)

2. 一元加和减操作符

###### 对非数值应用一元加操作符时,该操作符会把这个数值强制转换成数值类型

#### 算术操作符

`+` `-` `*` `/` `%`

#### 逻辑操作符

不同类型的值转换成布尔值

##### 对象 => `true`

##### 空字符串 => `false`

##### 非空字符串 => `true`

##### 数值0 => `false`

##### 任意非0数值(包括`Infinity`) => `true`

##### `null` => `false`

##### `NaN` => `false`

##### `undefined` => `false`

1. 逻辑非(`!`)

###### 逻辑非运算符有一个叹号(`!`)表示,可以用于JS中任何值。无论这个值是什么数据类型,该操作符都会返回一个布尔值。

###### 操作不同类型值的返回值

###### 1. 如果该值是一个对象,返回`false`

###### 2. 如果该值是一个空字符串,返回`true`

###### 3. 如果该值是一个非空字符串,返回`false`

###### 4. 如果该值是一个数值`0`,返回`true`

###### 5. 如果该值是任意非`0`数值(包括`Infinity`),返回`false`

###### 6. 如果该值是`null`,返回`true`

###### 7. 如果该值是`NaN`,返回`true`

###### 8. 如果该值是`undefined`,返回`true`

2. 逻辑与(`&&`)

###### 逻辑与有两个和号(`&&`)表示,有两个操作数,可以操作JS中的任意两个值。当两个数据值都是布尔值的时候,该操作符会返回布尔值。如果有一个数值不是布尔值,那么则不一定会返回布尔值。

###### 但有一个数据值不是布尔值的时候,它的返回结果遵循以下规则:

###### 1. 如果第一个操作数是对象,则返回第二个操作数

###### 2. 如果第二个操作数是对象,则只有在第一个操作数的求值结果为`true`的情况下才会返回该对象

###### 3. 如果两个操作数都是对象,那么会返回第二个操作数

###### 4. 如果有一个操作数是`null`,那么返回`null`

###### 5. 如果有一个操作数是`NaN`,那么返回`NaN`

###### 6. 如果有一个操作数是`undefined`,那么返回`undefined`

3. 逻辑或(`||`)

###### 逻辑或操作符有两个竖线符号(`||`),有两个操作数,可以操作JS中的任意两个值。

###### 如果两个操作数都是布尔值,只有在两个操作数都为`false`的时候才会返回`false`,否则返回`true`。

###### 如果有一个操作数不是布尔值,则遵循以下规则:

###### 1. 如果第一个操作数是对象,则返回第一个操作数

###### 2. 如果第一个操作数的求值结果为`false`,则返回第二个操作数

###### 3. 如果两个数都是对象,则返回第一个操作数

###### 4. 如果两个操作数都是`null`,则返回`null`

###### 5. 如果两个操作数都是`NaN`,则返回`NaN`

###### 6. 如果两个操作数都是`undefined`,则返回`undefined`

4. 短路操作

###### 在`与`操作符(`&&`)和`或`操作符(`||`)中,如果第一个操作数就已经能确定最终返回的结果,那么就不会去计算第二个操作数了

## 关系操作符

小于(`<`)、大于(`>`)、小于等于(`<=`)、大于等于(`>=`)这几个关系操作符用于对两个值进行比较,比较的规则与我们在上数学课上所学的一样。这几个操作符都会返回一个布尔值。

## 相等操作符

相等操作符(`==`)、不相等操作符(`!=`)、全等操作符(`===`)、不全等操作符(`!==`)

#### 相等和不相等 => 先转换类型再比较

#### 全等和不全等 => 仅比较而不转换类型

## 赋值操作符

简单的赋值操作符由等于号(`=`)表示,起作用就是把右侧的值赋给左侧的变量。

## 条件操作符(三目运算符)

`boolean_expression ? true_value : false_value`

## 运算符的优先级

| 运算符                                      | 描述                         |

| ---------------------------------------- | -------------------------- |

| `++` `--` `-` `+` `~` `!` `delete` `new` `typeof` `void` | 一元运算符、返回数据类型、对象创建、未定义值     |

| `*` `/` `%`                              | 乘法、除法、取模                   |

| `+` `-` `+`                              | 加法、减法、字符串连接                |

| `<<` `>>` `>>>`                          | 移位                         |

| `<` `<=` `>` `>=` `instanceof`           | 小于、小于等于、大于、大于等于、instanceof |

| `==` `!=` `===` `!==`                    | 等于、不等于、严格相等、非严格相等          |

| `&&`                                     | 逻辑与                        |

| `\|\|`                                   | 逻辑或                        |

| `?:`                                     | 条件                         |

| `=`                                      | 赋值、运算赋值                    |

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

## 代码注释

源码中被JavaScript引擎忽略的部分就叫做注释,它的作用是对代码进行解释。Javascript提供两种注释:一种是单行注释,用 `//` 起头;另一种是多行注释,放在 `/*` 和 `*/` 之间。

```javascript

// 单行注释

/*

*

* 多行注释

*

**/

```

时间: 2024-10-22 01:02:25

js语法概述的相关文章

Mongodb中的js语法

定义一个变量 > var len = 10; For循环 这里的db和data都可以作为对象 save是方法 接收一个临时定义的对象 > for(var i = 0; i < len; i++){db.data.save({x:i})}; WriteResult({ "nInserted" : 1 }) > db.data.find(); { "_id" : ObjectId("593177646a6bb0f03293efe1&qu

&lt;关于JSP技术&gt;运行机制及语法概述(附对本次同济校内ACM选拔赛决赛的吐槽)

(一)JSP运行的机制 JSP是一种建立在Servlet规范功能之上的动态网页技术,它们都是在通常的网页文件中嵌入脚本代码,用于产生动态内容,不过和ASP不同的是JSP文件中嵌入的是Java代码和JSP标记.其实JSP文件在用户第一次请求的时候会被编译成Servlet,然后再由这个Servlet处理用户的请求,所以JSP也可以看成是运行时的Servlet,模糊地将JSP和Servlet是同一个东西.但是他们之间的区别又有哪些呢? 1.Servlet是Java对于CGI的回应(Common Gat

Mustache.js语法

看了Mustache的github,学学此中的语法,做个笔记 1.简单的变量调换:{{name}} 1 var data = { "name": "Willy" }; 2 Mustache.render("{{name}} is awesome.",data); 返回成果 Willy is awesome. 2.若是变量含有html的代码的,比如:<br>.<tr>等等而不想转义能够在用{{&name}} 1 va

eclipse中加放js文件报js语法错误解决办法

1) eclipse设置         window->preference-> JavaScript -> Validator->Errors/Warnings->Enable Javascript Sematic validation前面的钩号去掉 2) .project文件    下面的代码删除 <buildCommand> <name>org.eclipse.wst.jsdt.core.javascriptValidator</name

js语法基础

js的由来,最开始是95年为了检查服务器验证表单数据而逐渐发展的. js的组成,1核心(ECMAScript)2文档对象模型(DOM)3浏览器对象模型(BOM) js是解释性执行,弱类型,基于对象,事件驱动,跨平台的脚本语音 对象包括日期对象,字符串对象,数学对象一系列对象 弱类型不区分整数和小数(相对于其他编程语音)变量可以存储任意类型 事件驱动:基于事件,例如鼠标经过(hover),鼠标点击(click,鼠标正键单击)失去焦点(focus)按键弹起事件 onload加载事件 跨平台:wind

js语法中运算符的二义性之逗号&ldquo;,&rdquo;的二义性

看到<js语言精髓与编程实践>中讲解的js语法中运算符的二义性之逗号的二义性,做些笔记 我们先来看看这两个例子: alert(eval('a=(1,2,3);'));//示例1 alert(eval('a=1,2,3;'));//示例2 结果是两者都会弹出3,这种用法产生的混乱,是因为逗号","既可以是语法分隔符,又可以是运算符所导致的.在上面的示例1,示例2中,逗号都被作为"连续运算符"在使用.示例1中的括号强制运算符,因此它的效果是运算如下表达式:

JS 语法大全

来源http://blog.csdn.net/newegg2009/article/details/6230582 js语法2008年03月19日 星期三 11:14一.js的数据类型和变量 JavaScript 有六种数据类型.主要的类型有 number.string.object 以及 Boolean 类型,其他两种类型为 null 和 undefined. String 字符串类型:字符串是用单引号或双引号来说明的.(使用单引号来输入包含引号的字符串.)如:"The cow jumped

gulp-gulpfile.js语法说明

关于gulpfile文件: 直接上代码吧!! /*! * gulp * $ npm install gulp gulp-ruby-sass gulp-cached gulp-uglify gulp-rename gulp-concat gulp-notify gulp-filter gulp-jshint gulp-rev-append gulp-cssnano gulp-imagemin browser-sync gulp-file-include gulp-autoprefixer del

Xaml语法概述及属性介绍

Xaml语法概述1.命名空间    xmal每个元素都对应着一个类,但是在xmal中,只提供类名是不够的,需要知道该类实在.net的哪个命名空间下面.Xaml解析器才能够正确的解析. 1 <Page 2 x:Class="App1.MainPage" 3 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 4 xmlns:x="http://schemas.microso