首页 > 代码库 > js1

js1

语法概述

JavaScript的引入方式

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

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript">
      console.log(‘hello, world‘);
    </script>
  </head>
  <body>
  </body>
</html>
 
  1. 通过script标签的src属性,引入外部的JavaScript文件

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <script type="text/javascript" src=http://www.mamicode.com/"./index.js"></script>
  </body>
</html>
 

数据类型

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

  • 数值类型(number)

  • 字符串类型(string)

  • 布尔值类型(boolean)

  • null

  • undefined

变量的命名规则

命名规则:

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

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

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

JavaScript保留字

abstractboolean break bytecase catch char class const continuedebugger default delete do doubleelse enum export extendsfalse final finally float for functiongotoif implements import in instanceof int interfacelongnative new nullpackage private protected publicreturnshort static super switch synchronizedthis throw throws transient true try typeofvar void volatilewhile with

example

合法的命名规则

arg0_tmp$elemπ

不合法的命名规则

1a23***a+b-dvarreturn

操作符

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
  1. 逻辑与(&&)

逻辑与有两个和号(&&)表示,有两个操作数,可以操作JS中的任意两个值。当两个数据值都是布尔值的时候,该操作符会返回布尔值。如果有一个数值不是布尔值,那么则不一定会返回布尔值。
但有一个数据值不是布尔值的时候,它的返回结果遵循以下规则:
1. 如果第一个操作数是对象,则返回第二个操作数
2. 如果第二个操作数是对象,则只有在第一个操作数的求值结果为true的情况下才会返回该对象
3. 如果两个操作数都是对象,那么会返回第二个操作数
4. 如果有一个操作数是null,那么返回null
5. 如果有一个操作数是NaN,那么返回NaN
6. 如果有一个操作数是undefined,那么返回undefined
  1. 逻辑或(||)

逻辑或操作符有两个竖线符号(||),有两个操作数,可以操作JS中的任意两个值。
如果两个操作数都是布尔值,只有在两个操作数都为false的时候才会返回false,否则返回true
如果有一个操作数不是布尔值,则遵循以下规则:
1. 如果第一个操作数是对象,则返回第一个操作数
2. 如果第一个操作数的求值结果为false,则返回第二个操作数
3. 如果两个数都是对象,则返回第一个操作数
4. 如果两个操作数都是null,则返回null
5. 如果两个操作数都是NaN,则返回NaN
6. 如果两个操作数都是undefined,则返回undefined
  1. 短路操作

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

关系操作符

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

相等操作符

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

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

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

赋值操作符

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

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

boolean_expression ? true_value : false_value

运算符的优先级

运算符描述
++ -- - + ~ ! delete new typeof void 一元运算符、返回数据类型、对象创建、未定义值
* / % 乘法、除法、取模
+ - + 加法、减法、字符串连接
<< >> >>> 移位
< <= > >= instanceof 小于、小于等于、大于、大于等于、instanceof
== != === !== 等于、不等于、严格相等、非严格相等
&& 逻辑与
 逻辑或
?: 条件
= 赋值、运算赋值

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

代码注释

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

// 单行注释?
/*
*
* 多行注释
*
**/
 

 

js1