一、Js的引用
- 内部引用
<!DOCTYPE html> <html lang = "en"> <head> <meta charset = "utf-8" /> </head> <body> <!-- 内部引入 --> <script type = "text/javascript"> //TODO </script> </body> </html>
script标签的type是为了告诉浏览器以何种规则解析该代码块,该属性也可以省略,但是引入时 "text/javascript" 不可以写错,写错之后该js代码会失效。
- 外部引用
<!DOCTYPE html> <html lang = "en"> <head> <meta charset = "utf-8" /> </head> <body> <!-- 外部引入 --> <script type = "text/javascript" src = "my.js"> </script> </body> </html>
为了符合web标准,我们通常要求结构(html)、行为(js)、样式(css)相分离,即每个内容写进不同的文件中,再进行引入,因此在开发中我们通常使用的都是外部引入的方式。
注意:当你给script标签加入了src属性之后,你再在script标签之间写的代码是无效的。
<!DOCTYPE html> <html lang = "en"> <head> <meta charset = "utf-8" /> </head> <body> <!-- 外部引入 --> <script type = "text/javascript" src = "my.js"> console.log("Hello world"); //无法执行该行代码 </script> </body> </html>
二、变量
- 变量声明
var a; //变量声明 a = 10; //变量赋值
js中声明变量使用var(es6中规定也可以使用 let、const声明,主要区别在于作用域的问题,详情查看: ECMAScript 6 入门)。
- 单一 var 声明法
可以使用一个var语句声明多个变量,并以逗号分隔。像这种初始化变量同时初始化值的做法是很好的,这样子可以防止逻辑错误并且增加代码的可读性。
//单一var声明法 var a = 1, b = 2, c = 3; //普通声明形式 var a = 1; var b = 2; var c = 3;
注:在书写代码时注意书写规范,等号左右各有一个空格,并且每行代码的结束也要加上分号。(当然空格和分号你可以不加,但是代码的美观度和可读性会大大折扣)
var a=1; var b =2 var c= 3;
这样的代码看起来会很想打人。
命名规则
- 变量名必须以英文字母、下划线_、$开头
- 变量名可以包含英文字母、下划线、数字、$
- 不可以使用系统关键字和保留字座位变量名
三、值类型
js中的值类型总体分为两大部分 :
- 原始值类型(栈数据):Boolean、Number、 String 、Undfined 、Null 、(ES6中的)Symbol
- 引用值类型(堆数据):Object、 Array、 Function...
- 原始值类型
var a = 10;
var b = a; //将a中的值复制一份传入变量b所开辟的空间中
a = 20; //修改的是变量a空间中的值,和b空间中的值不影响
console.log(b); //输出的是10
当你声明一个变量时,它就会在内存中开辟一个空间来存放变量的值,变量名就是指向这块空间的一个指针(指针中存放的是地址,例如1001),当你的值是原始类型时,它存放的结构就是栈(LIFO 先进后出)。
栈(stack)
1005 | |
1004 | |
1003 | |
1002 | |
| 10 |
| 10 |
栈(stack)
1005 | |
1004 | |
1003 | |
1002 | |
| 10 |
| 10 =>20 |
- 引用值类型
var arr1 = [1,2];
var arr2 = arr1;
arr1.push(3);
console.log(arr2) //[1,2,3]
引用类型赋值时传递的其实是一个指针而不是变量开辟出来的空间中的值,即arr1 和arr2指向的是同一块内存空间,所以修改arr1,arr2的内容也会随之改变。
这种关系就像是你有你家的钥匙,你的女朋友也有你家的钥匙,你用钥匙打开你家房门拿走家里的一点钱,当你女朋友有天去拿钱的时候肯定会知道你拿钱了一样,因为你们两个操作的是同一个空间。
四、运算符
- 运算操作符
“+”:1.用于数学计算。2.字符串拼接
var a = 1 + 1; //数学计算
var a = "1" + 1; //字符串拼接,打印结果为 "11"
任何数据类型加字符串都等于字符串。
- “-”,“*”,“/“,“%”,”=“,“()”;
- 优先级”=“最弱,”()”优先级较高;
- “++”,“- -”,”+=“,“-=”,“/=“,“*=”,“%=”。