JavaScript学习笔记之入门篇
JavaScript引入
1. 页面级 js:
直接在 HTML 文件里写上 script 标签,写在哪里都可以。
<script type=“text/javascript”>
js 代码
</script>
其中:type=“text/javascript” 是告诉浏览器这里面放的是js代码
2. 外部js文件:
新建一个 js 文件( 文件名.js), 然后在 HTML 里边写上 < script type=“text/javascript” src = “” >, src 后面放文件地址,并且把js代码写道外部js文件里。
例如:以 lesson.js保存文件,再引入到 html 中 为符合 web 标准(w3c 标准中的一项)结构(html)、行为(js)、样式(css) 相分离,通常会采用外部引入。
JavaScript变量
HTML,css 不是编程语言,是计算机语言,编程语言需要有变量和函数 变量是存放东西,方便后续使用的框
1. 变量的作用:
存放数据,我们会把一筐数据放到一些变量里,以便于后续使用。
2. 声明变量:
var 变量名;,例如:var a这句话的意思是:我们向程序申请了一 个变量的房间,这个房间的名字叫做 a,说通俗一点,就是我们想向系统要一个名字为 a 的筐,往这个筐里放东西,这就叫声明变量。
3. 变量赋值:
例如 var a;,如果你想给 a 这个筐里边放东西的话,可以这么写,例 如a=100,这样就把 100 放进了 a 筐里,注意这里的“=”不能叫等号,叫赋值符号,把 100 这个值赋给了 a,这就叫变量赋值。声明变量和变量赋值两个过程是分开的,没必要非得连在一起。当然也可以写在一起:var a=100;,这是一个简写,其实这里边包含了两个过程:声明变量和变量赋值。如果我们想把 100 打印出来,则 document.write(a);即可。
注意:document.write()括号里如果是变量名的话,不需 要加引号,如果是字符串的话,则需要加引号。
4. 单一 var 模式:
如果需要同时申请多个变量,可以这么写var a,b,c;中间用逗号 隔开(不能用分号,分号是 js 每一句结尾用的),也可以赋值:var a=1,b=2,c=3;打 印的时候也要用逗号隔开 document.write(a,b,c);开发的时候,为了规范书写,需要 在逗号后边加回车,让多个变量多行展示。
<script type=“text/javascript”>
var a = 1,
b = 2,
c = 3;
</script>
注:一个变量里只能存放一个值,如果给变量赋了一个新的值,他原来的值就不存在 了,例如 var a=10; a=20; 这个时候 a 的值是 20。
5. 命名规则:
(用接近的英文单词)———— 起变量名一定要以英文语义化
(1):变量名必须以英文字母 或 _ 或 $ 开头。
(2):变量名可以包括英文字母、_、$、数字 。
(3):不可以用系统的关键字、保留字作为变量名 。
关键字(以下为有特殊语法含义的字)
case | finally | return | void |
---|---|---|---|
break | else | new | var |
catch | for | switch | while |
default | if | throw | |
do | instanceof | typeof |
保留字(未来可能当做关键字的词)
abstract | enum | int | short |
---|---|---|---|
Boolean | export | interface | static |
byte | extends | long | super |
char | final | native | synchronize |
class | float | package | throws |
const | goto | private | transient |
debugger | implements | pritected | volatile |
double | import | public |
6. 变量的运算:
例如:var a=10; var b=20; var c; c=a+b; document.write ( c ) ; 此时打印出来 30,在计算机里,运算的优先级大于赋值的优先级,也就是先把等号右 边的 a+b 算出来后在赋给 c 的。
<script type=“text/javascript”>
var a = 10,
b = 20,
c;
c = a + b;
document.write(c); // c结果为30
</script>
7. 值类型:
值类型分为原始值和引用值(js 属于解释性语言,声明变量只有一个 var, 而且 var 里边可以放入任何值类型,js 里的值类型是由值来决定的,不是由变量决定 的)
(1):原始值分为 Number,String,Boolean,undefined,null
Number:数字类型,例如 var a=1;或 var a=-123.321 都可以。
String:字符串类型,我们有的时候需要把一些中文、数字或者英文等(字符串)输 入到里边,则必须加上引号 var a=“内容”,同样的,字符串也可以 document.write(a) 打印出来。(双引号里边的都是字符串)
Boolean:布尔类型,这里边的值只有两个,分别是 var a=true 和 var a=false,打印出来也是 true 或者 false,它是表示逻辑的词,以后会大有用处。
undefined:这里边的值只有一个,var a=undefined,打印出来也是他,当你声明一 个变量并且没有赋值直接打印的话,出来的就是 undefined,你也可以给变量赋值为 undefined。
null:null 表示占位,var a=null,打印出来也是 null,代表空的意思,空值,假如以后你写了一个方法,又不想要了,又删除不了,这时你可以用空值覆盖。
(2)引用值分为 array,object,function,date,RegExp 等,引用值后续会详细讲解, 这里拿 array 举个例子。 array:数组,相当于一个筐里有很多小格,可以放入很多东西,例如 var arr=[1,2,3,true,“abc”],打印出来也是 1,2,3,true,abc
注:原始值和引用值都是要往计算机里边存的,但是原始值和引用值存的地方不一 样,原始值存在 stack(栈内存)里,引用值存在 heap(堆内存里),栈内存相当于一 个有底没有顶的箱子,先进去的东西最后出来,堆内存相当于一个储物格,散列结构, 怎么放进去怎么拿出来。通俗的讲,栈内存和堆内存里边有好多房间,举个例子,比如说房间号为 1001,1002,1003……
例 1:
原始值有一个特点:不可改变,放进去的值永远改变不了,所以,先在栈内存里 把 1001 号房间改名为 a 房间,里边放了个 10,然后再在栈内存里把 1002 房间改名为 b 房间,然后,b=a 是把 10 这个数字复制过来的,原来 a 里边的数值还在,此时 a 和 b 里边都有 10,再让 a=20 的话,由于原来 a 里边的 10 改变不了,所以系统会把 1003 房 间再次改名为 a 房间,里边放入 20,原来的 a 房间数值 10 还在,只不过把 a 这个名字 去掉了,变回了 1001 房间,成为了一个野房间,那么,b 房间里的 10 还是在那里,所 以打印 b 得 10.
<script type=“text/javascript”>
var a = 10;
var b = a;
a = 20;
document.write(b); //得 10
</script>
例 2:
由于声明变量和变量赋值是分开的,所以系统会先在栈内存里先把 1001 房间改 名为 arr 房间,后来发现 arr 里放的是引用值,所以把数值 1 放进了堆内存里的 1001 房间里,此时,栈内存里的 arr 房间里也有东西,放的是堆内存 1001 房间的地址 heap1001,当 var arr1=arr 时,系统会把栈内存里的 1002 房间改名为 arr1 房间,arr1 房间里也放的是堆内存 1001 房间的地址 heap1001,然后 push 的意思就是给数组里加 东西,所以堆内存 1001 房间里加了一个 2 变成了 1,2,栈内存里 arr 和 arr1 还是指向 堆内存 1001 房间,所以打印 arr1 得 1,2. 例 3: 先把栈内存 1001 房间改名为 arr 房间,在堆内存 1001 房间放入 1,2, 把 heap1001 放入 arr 房间,然后把栈内存 1002 房间改名为 arr1 房间,放入 heap1001,此时,给 arr 重新赋值了,则需要在堆内存 1002 房间放入 1,3,然后把栈内存 arr 里边的地址 变为 heap1002,此时 arr 指向 heap1002,arr1 还是指向 heap1001,所以打印 arr1 得 1,2.
<script type=“text/javascript”>
var arr = [1];
var arr1 = arr;
arr.push(2);
document.write(arr1); //得 1,2
</script>
例 3:
先把栈内存 1001 房间改名为 arr 房间,在堆内存 1001 房间放入 1,2, 把 heap1001 放入 arr 房间,然后把栈内存 1002 房间改名为 arr1 房间,放入 heap1001,此时,给 arr 重新赋值了,则需要在堆内存 1002 房间放入 1,3,然后把栈内存 arr 里边的地址 变为 heap1002,此时 arr 指向 heap1002,arr1 还是指向 heap1001,所以打印 arr1 得 1,2.
<script type=“text/javascript”>
var arr = [1,2];
var arr1 = arr;
arr = [1,3];
document.write(arr1); //得1,2
</script>
注意:例 2 中 push 是给原数组里边加东西的,所以不用在开房间,例 3 是重新赋值, 需要在开一个新的房间。
8. js 语句基本规则 :
(1)语句后边要用英文分号结束。
但function test( ){},for( ){},if( ){}后面都不用加分号
(2)js 语法错误会引发后续代码终止,但不会影响其他代码块。
- 低级错误(语法解析错误),不能写中文
- 逻辑错误(标准错误,情有可原,错的那个执行不了)
(3)书写格式要规范,“±*/=”两边都要有空格。
(4)js 注释:Ctrl+?,单行注释是//注释内容,多行注释为/注释内容/
声明:作者通过观看渡一教育免费公开课及相关文档总结的笔记,不做任何商业用途,仅供学习交流,感谢指正,如有侵权烦请立马联系,欢迎转载,请注明出处。