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学习笔记之入门篇相关推荐

  1. javaSE学习笔记01 入门篇

    javaSE学习笔记01 入门篇 java语言概述 Java背景知识 java是 美国 sun 公司 在1995年推出的一门计算机高级编程语言. java早期称为Oak(橡树),后期改名为Java. ...

  2. JavaScript学习笔记之DOM篇,带你全面了解什么是DOM

    DOM在前面的JavaScript学习笔记(一)–JS基础里简单提到过,它是浏览器厂商提供的用来控制html / css 的代码的文档对象模型,是JavaScript的重要组成部分,现在带大家详细了解 ...

  3. Java学习笔记系列-入门篇-计算机基础

    Java学习笔记 Java学习笔记是一个持续更新的系列,工作多年,抽个空对自身知识做一个梳理和总结归纳,温故而知新,同时也希望能帮助到更多正在学习Java 的同学们. 本系列目录: 入门篇 计算机基础 ...

  4. 经典再现,看到就是赚到。尚硅谷雷神 - SpringBoot 2.x 学习笔记 - 基础入门篇

    SpringBoot 2.x 时代 – 基础入门篇 视频学习地址:https://www.bilibili.com/video/BV1Et411Y7tQ?p=112&spm_id_from=p ...

  5. Swi-Prolog学习笔记(入门篇)

    首先介绍一个学习swi-prolog 和amzi-prolog很靠谱的中文网站:http://hyry.dip.jp/tech/book/page/prolog/search_game_maxmin. ...

  6. 持续集成学习笔记-入门篇(1)持续集成基本概念

    今年7月份中下旬,笔者见过一个号称"资深开发者"的哥们(据说编程有十来年了),笔者问他:"你们平时用的持续集成工具都有哪些?"这哥们回答:"那些都是骗 ...

  7. 金融常识学习笔记之入门篇

    金融常识学习笔记 拉弗曲线 住房痛苦指数 CPI 什么是CPI? 如何才能跑赢CPI? 工资上涨能跑赢CPI吗? PPI 什么是PPI? PPI有什么作用? 恩格尔系数 什么是恩格尔系数? 恩格尔系数 ...

  8. UVM学习笔记—快速入门篇

    UVM指的是验证方法学,是学习数字验证的入门课程.它是至关重要的,有不少人往IC验证方向发展的,多多少少都会去了解UVM.但UVM并不是简单的翻个书就可以学会的,还是要掌握学习方法或者跟着老师学习的. ...

  9. JavaScript学习笔记之BOM篇,认识几种常见的浏览器对象

    BOM(Browser Object Document)即浏览器对象模型,顾名思义就是为了控制浏览器的行为而出现的接口.浏览器可以做什么呢?比如跳转到另一个页面.前进.后退等等,程序还可能需要获取屏幕 ...

最新文章

  1. 回顾2021,展望2022
  2. 全面认识Eclipse中JVM内存设置
  3. 数据库相关的系统巡检参考项
  4. Eboot.bib中0x30000000到0x300020000内存的作用
  5. 计算机辅助设计A卷,《计算机辅助设计》考试试卷A.doc
  6. 讲解Linux数据库安装
  7. 16. Use the same form in correspondng uses of new and delete
  8. ADS(Advanced Design system)仿真后绘图和绘图技巧
  9. 【信号处理】基于高阶统计量特征的通信系统中微弱信号检测附matlab代码
  10. TCP协议——SYN/ACK的使用以及滑动窗口机制
  11. Anaconda介绍、安装及使用保姆级教程
  12. mac搜索不到wifi wtg_Mac电脑无法连接WiFi怎么办?教你解决无法联网的问题
  13. Python为何能上位碾压Java?
  14. c语言atm程序个人总结,C语言程序设计报告(模拟ATM取款机)
  15. ABB 120 六轴机械手臂编程调试(三)
  16. hana经常使用函数
  17. Python 拆分字符串
  18. java.net.MalformedURLException: no protocol 可能的解决方法
  19. 苹果app开发流程详解​
  20. Python和ArcGIS自动化制图完全指南(三):分配模板大小

热门文章

  1. Android 12上焕然一新的小组件:美观、便捷和实用
  2. 小米电视怎么下载软件?用一起看TV宅家不无聊
  3. Pytorch错误集锦
  4. 整理一下个人学习前端的网站
  5. DSP28335学习笔记-产生PWM波 ——从应用角度出发
  6. IOS 多线程之信号量
  7. 用Ruby替代Java做rest接口的单元测试!
  8. history查看历史命令,并显示运行时间
  9. 助力全球抗疫,腾讯加入Linux基金会公共卫生计划
  10. 安装blackbox_exporter