JavaScript学习笔记之入门篇
JavaScript学习笔记之入门篇
- JavaScript引入
- 1. 页面级 js:
- 2. 外部js文件:
- JavaScript变量
- 1. 变量的作用:
- 2. 声明变量:
- 3. 变量赋值:
- 4. 单一 var 模式:
- 5. 命名规则:
- 6. 变量的运算:
- 7. 值类型:
- 8. js 语句基本规则 :
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+?,单行注释是//注释内容,多行注释为/注释内容/
声明:作者通过观看渡一教育免费公开课及相关文档总结的笔记,不做任何商业用途,仅供学习交流,感谢指正,如有侵权烦请立马联系,欢迎转载,请注明出处。
JavaScript学习笔记之入门篇相关推荐
- javaSE学习笔记01 入门篇
javaSE学习笔记01 入门篇 java语言概述 Java背景知识 java是 美国 sun 公司 在1995年推出的一门计算机高级编程语言. java早期称为Oak(橡树),后期改名为Java. ...
- JavaScript学习笔记之DOM篇,带你全面了解什么是DOM
DOM在前面的JavaScript学习笔记(一)–JS基础里简单提到过,它是浏览器厂商提供的用来控制html / css 的代码的文档对象模型,是JavaScript的重要组成部分,现在带大家详细了解 ...
- Java学习笔记系列-入门篇-计算机基础
Java学习笔记 Java学习笔记是一个持续更新的系列,工作多年,抽个空对自身知识做一个梳理和总结归纳,温故而知新,同时也希望能帮助到更多正在学习Java 的同学们. 本系列目录: 入门篇 计算机基础 ...
- 经典再现,看到就是赚到。尚硅谷雷神 - SpringBoot 2.x 学习笔记 - 基础入门篇
SpringBoot 2.x 时代 – 基础入门篇 视频学习地址:https://www.bilibili.com/video/BV1Et411Y7tQ?p=112&spm_id_from=p ...
- Swi-Prolog学习笔记(入门篇)
首先介绍一个学习swi-prolog 和amzi-prolog很靠谱的中文网站:http://hyry.dip.jp/tech/book/page/prolog/search_game_maxmin. ...
- 持续集成学习笔记-入门篇(1)持续集成基本概念
今年7月份中下旬,笔者见过一个号称"资深开发者"的哥们(据说编程有十来年了),笔者问他:"你们平时用的持续集成工具都有哪些?"这哥们回答:"那些都是骗 ...
- 金融常识学习笔记之入门篇
金融常识学习笔记 拉弗曲线 住房痛苦指数 CPI 什么是CPI? 如何才能跑赢CPI? 工资上涨能跑赢CPI吗? PPI 什么是PPI? PPI有什么作用? 恩格尔系数 什么是恩格尔系数? 恩格尔系数 ...
- UVM学习笔记—快速入门篇
UVM指的是验证方法学,是学习数字验证的入门课程.它是至关重要的,有不少人往IC验证方向发展的,多多少少都会去了解UVM.但UVM并不是简单的翻个书就可以学会的,还是要掌握学习方法或者跟着老师学习的. ...
- JavaScript学习笔记之BOM篇,认识几种常见的浏览器对象
BOM(Browser Object Document)即浏览器对象模型,顾名思义就是为了控制浏览器的行为而出现的接口.浏览器可以做什么呢?比如跳转到另一个页面.前进.后退等等,程序还可能需要获取屏幕 ...
最新文章
- 回顾2021,展望2022
- 全面认识Eclipse中JVM内存设置
- 数据库相关的系统巡检参考项
- Eboot.bib中0x30000000到0x300020000内存的作用
- 计算机辅助设计A卷,《计算机辅助设计》考试试卷A.doc
- 讲解Linux数据库安装
- 16. Use the same form in correspondng uses of new and delete
- ADS(Advanced Design system)仿真后绘图和绘图技巧
- 【信号处理】基于高阶统计量特征的通信系统中微弱信号检测附matlab代码
- TCP协议——SYN/ACK的使用以及滑动窗口机制
- Anaconda介绍、安装及使用保姆级教程
- mac搜索不到wifi wtg_Mac电脑无法连接WiFi怎么办?教你解决无法联网的问题
- Python为何能上位碾压Java?
- c语言atm程序个人总结,C语言程序设计报告(模拟ATM取款机)
- ABB 120 六轴机械手臂编程调试(三)
- hana经常使用函数
- Python 拆分字符串
- java.net.MalformedURLException: no protocol 可能的解决方法
- 苹果app开发流程详解​
- Python和ArcGIS自动化制图完全指南(三):分配模板大小