您的位置:首页 > Web前端 > JavaScript

JavaScript学习笔记-基本语法

2017-05-18 11:33 597 查看

一、基本语法

语句和表达式 (statement & expression)

概念:

语句:是为了完成某种任务而进行的操作,如:var a = 1+1;。

表达式:是为了得到返回值的计算式,如:1+1。

JavaScript的执行单位是行,代码是一行一行的执行,一般情况下一行就是一个语句。

* 例子:

var a = 1 + 1; // 语句,为了进行某种操作,不需要返回值,分号结尾。
1+1 // 表达式,为了得到返回值,不需要分号。
;;; // 三个空语句
1+1; 'abc'; // 表达式后加分号,无意义的语句


我们首先使用关键字var声明一个变量,之后执行等号右边的表达式并将表达式的结果赋值给变量。

变量(variable)

概念: 变量是对’值’的引用,使用变量等于引用一个值,每个变量都有一个变量名。

2.1. 变量声明

* 例子:

var a = 1; // 声明变量a,赋值为1。

var a;
a = 1; // 声明和赋值分开

var a; // 只声明不赋值,结果为undefined

a = 1; // 忘记var,变量提升为全局变量,可以使用delete删除,不推荐。

a // ReferenceError: a is not defined

var a, b; // 声明多个变量,推荐写法。

var a = 1;
var a;
a // 1  重新声明变量无效

var a = 1;
var a = 2;
a // 2 重新声明赋值,覆盖前一个


var是变量声明的关键字,作用是通知js引擎,要创建一个变量a,使用var声明一个变量a,之后将值1赋值给变量a,之后我们就可以使用变量a来引用值1。

2.2. 变量的提升

* 概念: 代码中所有的变量声明语句都会被提升到头部。

* 原因:JavaScript引擎是工作方式是首先解析代码,获取所有被声明的变量,之后才一行一行的运行代码。

例子:

console.log(a); // undefined  变量声明提升,赋值不提升,所以结果为undefined
var a = 1;

//相当于

var a;
console.log(a); // undefined
a = 1;

console.log(a); // ReferenceError: a is not defined   变量提升只对使用var声明的变量有效
a = 1;


标识符(identifier)

概念:用来识别具体对象的一个名称,常见有变量名和函数名。

规则:
[Unicode字母 | _ | $] + [Unicode字母| 0-9 | _ | $]{0-~}


例子:

// 合法
a123
_123
$123
π
var 临时变量 = 1;

//不合法
123 // 第一个字符不能是数字
1abc // 同上
*** // 标识符不能包含星号
a+b  // 标识符不能包含加号
-d  // 标识符不能包含减号或连词线


JavaScript有一些保留字,不能用作标识符:arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。

另外,还有三个词虽然不是保留字,但是因为具有特别含义,也不应该用作标识符:Infinity、NaN、undefined。

注释

// 这是单行注释

/*
这是
多行
注释
*/


区块

概念:JavaScript中使用{}将多个相关的语句组合在一起。

作用: 构建其他更加复杂的语法结构,比如for if while function等

{
var a = 1;
}
a // 1

{
let a = 1;
}
a // ReferenceError: a is not defined


使用var声明变量区块不存在局部作用域,使用let声明变量区块中存在局部作用域

条件语句

// if 语句
if (expression) {
statement;
}
// if else 语句
if (expression) {
// then
} else {
// else
}

// switch 语句
switch (expression){
case value:
break;
default:
break;
}
// 三元运算符
(condition) ? expr1 : expr2s;


循环语句

// while 循环
while (expression) {
statement
}
var i = 5;
while (i--){
console.log(i)
}
// for 循环
for (initialize; test; increment) {
statement
}

for (var i = 0; i < 5; i++) {
console.log(i)
}
// 可省略,形成一个无限打印的循环
for (; ;) {
console.log('hello world'); // hello world
}
// do while 循环
do {
statement
} while (expression);

// break语句 跳出循环
var i = 10;
while (i--){
console.log(i)
if(i === 5) break;
}
// 打印所有奇数
var i = 0;
while (i < 100){
i++;
if (i%2 === 0) continue;
console.log('i当前为:' + i);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: