从零开始学JavaScript

Author Avatar
MagicDo 6月 02, 2017
  • 在其它设备中阅读本文章

——基本语法

变量

变量声明和赋值

1.声明

1
var 变量名

2.赋值

1
2
//变量名=值
var PI=3.141592654

变量命名规范

变量名区分大小写 例如:

1
2
3
var name=1.2;
var NAME='john';
var Name=true;

上面就是三个不同的变量,并且代表不同类型的值,除了区分大小写以外,变量名开头只能使用字母和”$”或”“,后面可以接字母或数字和”$”或”“,例如:

1
2
var $_$=1;
var _$_1=2;

上面都是合法的命名,下面是不合法的命名方式

1
2
3
4
//下面代码在运行中会出现语法错误
var &_&=1;
var 1ab=1;
var ._.=1;

数据类型

javascript总共有9种数据类型,分别是 未定义(Undefined)、空(Null)、布尔(Boolean)、字符串(String)、数字(Number)、对象(Object)、引用(Reference)、列表(List)、完成(Completion).其中后三种仅仅作为运行时中间结果的数据类型,而不能在代码中使用。

数据类型分类

1.基本类型
包含5种基本类型

① Undefined

未定义类型,这个类型只有一个值,undefined
任何未被赋值的变量,也就是只声明过的变量,都有一个undefined值

如果程序中引用了未定义变量,也会显示undefined,造成程序错误

其中 typeof运算符可用来查看一个变量所属类型

除了程序引用了未定义变量,开发者自己也可以把变量赋值为undefined

②Null

Null是空类型,这个类型只有一个值–null

null是一个占位符,表示一个变量已经有值,但值为空。不同于undefined,null通常产生在程序运行中

当变量不在使用时,将变量赋值为null,以释放存储空间

③Boolean

布尔类型,值为true或false

④ String

字符串类型 程序中使用最广的一种类型

在字符串序列中,每个字符都有一个索引值,用来定位字符的位置。

应当把null和空字符串区分开来

1
2
3
4
//空字符串
var str="";
//空值
var str=null;

⑤Number

数值类型
举例:

1
2
3
4
5
6
7
8
9
10
//十进制
var num=10;
//十进制小数
var num=1.19;
//八进制
var num=010;
//十六进制
var num=0xFD;
//科学计数法
var num=9.99e+9;

不管参与运算的变量值是什么进制的数字,计算结果仍然是十进制

Number 类型有3个特殊常量值,分别是NaN、+Infinity和-Infinity

1)NaN

NaN全称是 Not a Number,通常来验证一个变量的值是否是数值,不能直接通过与NaN比较来判断,而是利用isNaN(..);来判断
例如:

1
2
var str='abcd';
alert(isNaN(str));

2)+Infinity

正无穷常量表示一个数值表达式的计算结果是无穷大,规定大于或等于2的1024次方的数为无穷大

3)-Infinity

负无穷常量与正无穷相反,但是他们的数量级相同

2.引用类型

相对于基本类型,引用类型最大的不同之处在于变量值的存储方式,对于基本类型来说,变量中存储的是值本身,而引用类型存储的是值所在的内存空间地址,也就是指针

引用类型通常被认为是类,而他的值就是对象。对象是一种特殊值,相当于集合 可以通过.来访问集合内部值,例如obj.name

关键字

1
2
3
4
5
6
7
break     else       new         var
case finally return void
catch for switch while
continue function this with
default if throw delete
in try do instanceof
typeof

标识符

1
2
3
4
5
6
7
8
abstract  enum       int         short
boolean export interface static
byte extends long super
char final native synchronized
class float package throws
const goto private transient
debugger implements protected volatile
double import public

运算符

算数运算符

四则运算等

1.取模运算%

2.自增/自减运算 ++/–

3.变量取正负运算+ -

赋值运算符

=、+= ……

关系运算符

<、== >、 ……

逻辑运算符

&& || !

位运算符

& 、| 、~ 、^(异或)、<< (按位左移)、>>(按位右移)、>>>(无符号按位右移)

其他运算符

[]、instanceof、typeof、new、void、delete、in、

举例

1
2
3
delete obj.a;
delete array[0];
'a' in obj;

控制语句

选择条件语句

1
2
3
4
5
6
7
8
9
10
if(){
}else{
}

switch(){
case 1: ...;break;
}
//javascript中switch支持各种类型控制条件
//条件表达式
变量=布尔值?值1:值2

循环语句

1
2
3
4
5
6
7
8
9
10
11
for(){
}

while(){
}

do{
}while()

for(var in object){
}

数组

1.javascript数组可以存放任何类型数据

2.访问不存在的索引时返回undefined

3.试图给不存在的索引赋值,不会引发程序错误,而是自动扩展数组

函数

在javascript中 函数也是一种数据类型

语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
   function 函数名(形参1 2 3 ...){
语句
return 返回值;
}

//阶乘函数
function n$(n){
if (n==0) {
return 0;
}
var out=1;
for (var i = 0; i < n; i++) {
out*=i;
}
return out;
}
//调用函数
var n0=n$(10);

内部函数和匿名函数

1
2
3
4
5
6
7
8
9
10
11
12
13
//创建一个匿名函数
var func=function(){
alert('fun');
}

//返回函数类型的值
var func=function(){
return function(){
alert('这是一个内部匿名函数');
}
}
//调用函数
func()();

回调函数

1
2
3
4
5
6
7
8
9
10
<html>
<body>
<script>
function func(){
alert('回调函数');
}
</script>

<input type="button" value="吊我" onclick="func()"/>
<body>
</html>

严格模式

开启严格模式

1
"use strict";//必须是第一行

严格模式允许定义在不同作用域内

1
2
3
4
5
6
"use strict";//影响该文件
function stricFunc(){
use strict;//只影响函数内代码
a=3;
return a;
}