从零开始学JavaScript
——基本语法
变量
变量声明和赋值
1.声明1
var 变量名
2.赋值1
2//变量名=值
var PI=3.141592654
变量命名规范
变量名区分大小写 例如:1
2
3var name=1.2;
var NAME='john';
var Name=true;
上面就是三个不同的变量,并且代表不同类型的值,除了区分大小写以外,变量名开头只能使用字母和”$”或”“,后面可以接字母或数字和”$”或”“,例如:1
2var $_$=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
2var str='abcd';
alert(isNaN(str));
2)+Infinity
正无穷常量表示一个数值表达式的计算结果是无穷大,规定大于或等于2的1024次方的数为无穷大
3)-Infinity
负无穷常量与正无穷相反,但是他们的数量级相同
2.引用类型
相对于基本类型,引用类型最大的不同之处在于变量值的存储方式,对于基本类型来说,变量中存储的是值本身,而引用类型存储的是值所在的内存空间地址,也就是指针
引用类型通常被认为是类,而他的值就是对象。对象是一种特殊值,相当于集合 可以通过.来访问集合内部值,例如obj.name
关键字
1 | break else new var |
标识符
1 | abstract enum int short |
运算符
算数运算符
四则运算等
1.取模运算%
2.自增/自减运算 ++/–
3.变量取正负运算+ -
赋值运算符
=、+= ……
关系运算符
<、== >、 ……
逻辑运算符
&& || !
位运算符
& 、| 、~ 、^(异或)、<< (按位左移)、>>(按位右移)、>>>(无符号按位右移)
其他运算符
[]、instanceof、typeof、new、void、delete、in、
举例1
2
3delete obj.a;
delete array[0];
'a' in obj;
控制语句
选择条件语句
1 | if(){ |
循环语句
1 | for(){ |
数组
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 | //创建一个匿名函数 |
回调函数
1 | <html> |
严格模式
开启严格模式1
//必须是第一行 ;
严格模式允许定义在不同作用域内1
2
3
4
5
6//影响该文件 ;
function stricFunc(){
use strict;//只影响函数内代码
a=3;
return a;
}