镇江网站建设网站制作公司,机械外贸网站建设,网站头图设计,做自己的网站要花多少钱JavaScript笔记01
什么是 JavaScript
JavaScript 是一门世界上最流行的脚本语言#xff0c;它是一种弱类型的脚本语言#xff0c;其代码不需要经过编译#xff0c;而是由浏览器解释运行#xff0c;用于控制网页的行为。
发展历史
参考#xff1a;JavaScript的起源故事…JavaScript笔记01
什么是 JavaScript
JavaScript 是一门世界上最流行的脚本语言它是一种弱类型的脚本语言其代码不需要经过编译而是由浏览器解释运行用于控制网页的行为。
发展历史
参考JavaScript的起源故事
ECMAScript
ECMAScript 可以被理解为 JavaScript 的一个国际标准而 JavaScript 则是 ECMAScript 的一种实现。最新已更新到了 ES6
快速入门
引入 JavaScript
内部标签
首先我们可以使用script标签直接在我们的 HTML 文件中编写 JavaScript 代码通常我们将script标签放在head或body中
1.我的第一个JavaScript程序.html
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/title!-- 可以在script标签中写Javascript代码(通常将script标签放在head或body中) --scriptalert(hello,world);/script/head
body/body
/html打开浏览器查看网页效果 外部引入
和 CSS 一样我们还可以把JavaScript代码单独写在一个.js文件中再通过script标签从外部引入所以上面的 HTML 代码可以改下为如下两个文件
1.我的第一个JavaScript程序.html
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/title!-- 通过script标签外部引入 --!-- 注意script标签必须成对出现不能改写成自闭合标签 --script srcjs/hello.js/script!-- 不用显式定义type也默认就是typetext/javascript(可以不用写) --script typetext/javascript/script/head
body/body
/htmlhello.js
alert(hello,world);查看网页效果 可以看到这两种写法的效果是相同的。
基本语法入门
下面我们通过下面的代码来了解一下 JavaScript 的基本语法
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/title!-- 和Java一样JavaScript也是严格区分大小写 --script// 1. 定义变量// 变量类型 变量名 变量值var score 80;// 2. 条件控制if(score60 score100) {// alert(); - 弹出框alert(pass);}if(score0 score60) {alert(fail);}else {alert(wrong score);}/script/head
body/body
/html查看网页弹窗 补充使用浏览器调试 JavaScript 代码
首先我们需要认识一下浏览器自带的网页开发者工具知道常用的几个工具分别是干什么的 我们可以使用Console进入浏览器的控制台我们可以在里面写 JavaScript 代码。例如我们可以通过输入console.log()来打印变量 我们也可以通过Sources来对我们的 JavaScript 代码打断点一步一步地调试我们的程序 数据类型
变量
使用var定义变量ES6 之后建议使用let或者const
var name 张三;
var num 1;number
JavaScript 不区分小数和整数
123 // 整数
123.1 // 浮点数
1.123e3 // 科学计数法
-99 // 负数
NaN // Not a Number
Infinity // 表示无限大字符串
可以用单引号也可以用双引号
abc
abc布尔值
和 Java 相同
true
false逻辑运算
与、或、非 // 与两个都为真结果为真
|| // 或一个为真结果为真
! // 非真即假假即真(取反)比较运算符【重点】 // 赋值// 等于(类型不一样值一样也会判断为true)非常不建议使用// 绝对等于(类型一样值也一样才会判断为true)建议使用补充NaNNaN判断结果为false。原因NaN表示不是一个数字所以它与任何数值都不相等包括它自己。只能通过isNaN(数值)来判断这个数值是不是NaN。例如isNaN(NaN) - 它的结果为true。
浮点数问题
和在 Java 中一样我们在 JavaScript 中也应该尽量避免直接使用浮点数进行运算存在精度问题例
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/titlescriptconsole.log((1/3)(1-2/3));/script/head
body/body
/html打开浏览器控制台查看结果 那么在 JavaScript 中我们该怎样对浮点数进行运算呢由于 JavaScript 中并没有像 Java 中的 BigDecimal 一样的专门对浮点数进行运算的工具类所以我们只能使用Math.abs()取两个数差的绝对值与一个极小的浮点数例如0.0000000001进行比较当差的绝对值小于这个极小的浮点数时我们就可以近似地认为这两个浮点数相等这样就可以进行浮点数的运算了。例
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/titlescriptconsole.log(Math.abs((1/3)-(1-2/3))0.0000000001);/script/head
body/body
/html打开浏览器控制台查看结果 null 和 undefined
null // 空
undefined // 未定义的数组
我们在 Java 中定义数组时一个数组内只能存放相同类型的数据而在 JavaScript 中则不需要这样可以在一个数组中存放各种类型不相同的数据。例
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/titlescriptvar arr [1,2,3,4,hello,null,true];/script/head
body/body
/html打开浏览器控制台通过使用console.log(arr[数组的下标])打印数组中指定下标位置的数据 可以发现 JavaScript 中的数组和 Java 中的的数组一样下标都是从 0 开始的。在 JavaScript 中当我们打印数组中的数据时如果我们取的数组下标越界了也不会像 Java 中一样报异常而是会返回 undefined未定义的。另外除了上面的方式JavaScript 中还有另一种方式定义数组例
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/titlescriptnew Array(1,2,3,4,hello,null,true);/script/head
body/body
/html为了提高代码的可读性我们通常建议使用第一种使用中括号[]的方式来定义数组。
对象
定义数组用中括号[]定义对象用大括号{}。每个属性之间使用逗号,隔开最后一个属性则不需要添加。例
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/titlescriptvar person {name: clown,age: 3,tags: [java,javascript,python,c]}/script/head
body/body
/html我们可以使用对象名.属性名来获取对象的值 严格检查模式
使用严格检查模式的前提IDEA 需要设置支持 ES6 语法。 通过使用use strict - 严格检查模式可以预防因为 JavaScript 的随意性而产生的一些问题。例因为 JavaScript 具有随意性所以即使我们像下面这样不规范地定义变量程序也能运行而不会报错
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/titlescript i 1;/script
/head
body/body
/html可以看到 IDEA 预编译没有生成警告或错误提示信息 在浏览器控制台中使用console.log(i)也能获取到i的值 但这样定义的变量为全局变量能被其他任何对象或函数引用这样就会导致我们的程序存在隐患。所以为了规范编码预防因为 JavaScript 的随意性而产生的一些问题我们可以使用严格检查模式use strict它必须被写在 JavaScript 代码的第一行。我们给上面的代码中加上严格检查模式
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/title!--前提IDEA需要设置支持ES6语法use strict - 严格检查模式预防因为JavaScript的随意性而产生的一些问题必须写在JavaScript代码的第一行局部变量建议都使用let来定义~--scriptuse strict;i 1;/script
/head
body/body
/html可以发现在加上严格检查模式之后IDEA 预编译帮我们生成了错误提示。 在浏览器控制台中输入console.log(i)也无法获取i的值了而是会报错 这就使得我们能提前发现我们的程序中不规范的编码从而预防因为 JavaScript 的随意性而产生的一些问题。下面我们来看一下规范的代码
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/title!--前提IDEA需要设置支持ES6语法use strict - 严格检查模式预防因为JavaScript的随意性而产生的一些问题必须写在JavaScript代码的第一行局部变量建议都使用let来定义~--scriptuse strict;let i 1;/script
/head
body/body
/html定义变量时在变量i之前加上一个let将它定义为局部变量这样程序就不会出问题了。补充深入理解JSvar、let、const的异同