文章目录
一、初识JavaScript
1.1 JavaScript历史
- 布兰登·艾奇( Brendan Eich,1961年~)。
- 网景公司最初命名为LiveScript,后来在与Sun合作之后将其改名为JavaScript
1.2 JavaScript是什么
- JavaScript是世界上最流行的语言之一,是一种运行在客户端的脚本语言( Script是脚本的意思)
- 脚本语言∶不需要编译,运行过程中由js解释器(js引擎)逐行来进行解释并执行
- 现在也可以基于Node.js技术进行服务器端编程
1.3 浏览器执行JS
浏览器分成两部分∶渲染引擎和JS引擎
- 渲染引擎∶用来解析HTML与CSS,俗称内核,比如chrome浏览器的blink,老版本的webkit
- JS引擎:也称为JS解释器。用来读取网页中的JavaScript代码,对其处理后运行,比如chrome浏览器的V8
1.4 JS的组成
(1)ECMAScript:ECMAScript规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。
(2)DOM——文档对象类型:文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。通过DOM提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色等)。
(3)BOM——浏览器对象模型:BOM(Browser Object Model,简称BOM)是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。
1.5 JS书写位置
1、行内式
<input type="button" value="点我试试" onclick="alert('Hello World')">
- 可以将单行或少量JS代码写在HTML标签的事件属性中(以on开头的属性),如: onclick
- 注意单双引号的使用:在HTML中我们推荐使用双引号,JS中我们推荐使用单引号
- 可读性差,在html中编写JS大量代码时,不方便阅读
- 引号易错,引号多层嵌套匹配时,非常容易弄混
- 特殊情况下使用
2、内嵌JS
<script>
alert("Hello world");
</script>
- 可以将多行JS代码写到
<script>
标签中
3、外部JS文件
<script src="./my.js"></script>
- 利于HTML页面代码结构化,把大段JS代码独立到HTML页面之外,既美观,也方便文件级别的复用
- 引用外部JS文件的script标签中间不可以写代码
- 适合于JS代码量比较大的情况
1.6 JavaScript注释
单行注释://
多行注释:/. ./
1.7 JavaScript输入输出语句
方法 | 说明 |
---|---|
alert(msg) | 浏览器弹出警示框 |
console.log(msg) | 浏览器控制台打印输出信息 |
prompt(info) | 浏览器弹出输入框,用户可以输入 |
1.8 变量
1.8.1 变量的使用
1、声明变量:
var age; //声明一个名称为age的变量
var是一个JS关键字,用来声明变量(varable变量)。使用该关键字声明变量后,计算机会自动为变量分配内存空间
2、赋值
3、变量的初始化:声明一个变量并赋值。
4、同时声明多个变量:
同时声明多个变量时,只需要写一个var,多个变量名之间使用英文逗号隔开
1.8.2 变量命名规范
- 由字母(A-Z a-z)、数字(0-9)、下划线(_)、美元符号($ )组成,如: usrAge, num01,_name
- 严格区分大小写。var app;和var App;是两个变量
- 不能以数字开头。18age 是错误的
- 不能是关键字、保留字。例如: var、for、while
- 遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。myFirstName
二、数据类型
2.1 简单数据类型
简单数据类型 | 说明 | 默认值 |
---|---|---|
Number | 数字型,包含整型值和浮点型值 | 0 |
Boolean | 布尔值类型,如true、false ,等价于1和0 | false |
String | 字符串类型,JS中,字符串都带引号 | “” |
Undefined | var a; 声明了变量a但是没有赋值 | undefined |
Null | var a = null; 声明了变量a为空值 | null |
2.1.1 数字型Number
1、数字型进制:
在JS中八进制前面加0,十六进制前面加0x
2、数字型范围
alert(Number.MAX_VALUE);//1.7976931348623157e+308
alert(Number.MIN_VALUE);//5e-324
3、特殊值
alert(Infinity);//Infinity ,代表无穷大,大于任何数值
alert(-Infinity);//-Infinity ,代表无穷小,小于任何数值NaN ,Not a number,代表一个非数值
alert(NaN);//NaN ,Not a number,代表一个非数值
4、isNaN()
- 这个方法用来判断非数字,并且返回一个值
- 如果是数字返回的是 false 如果不是数字返回的是true
2.1.2 字符串型String
1、字符串引号嵌套
JS可以用单引号嵌套双引号,或者用双引号嵌套单引号(外双内单,外单内双)
2、字符串转义符
转义符 | 解释说明 |
---|---|
\n | 换行符 |
\\ | 斜杠\ |
\' | ‘单引号 |
\" | "双引号 |
\t | tab缩进 |
\b | 空格 |
3、字符串长度
字符串是由若干字符组成的,这些字符的数量就是字符串的长度。通过字符串的length属性可以获取整个字符串的长度。
var str = '字符串的长度。';
alert(str.length);
4、字符串拼接
- 多个字符串之间可以使用+进行拼接,其拼接方式为字符串+任何类型=拼接之后的新字符串
- 拼接前会把与字符串相加的任何类型转成字符串,再拼接成一个新的字符串
2.1.3 布尔型Boolean
- 布尔类型有两个值: true和false ,其中 true表示真(对),而false表示假(错)。
- 布尔型和数字型相加的时候,true的值为1 ,false的值为0。
2.1.4 Undefined 和 Null
- 一个声明后没有被赋值的变量会有一个默认值undefined(如果进行相连或者相加时,注意结果)
- 一个声明变量给null值,里面存的值为空
2.2 获取数据变量类型
typeof
可用来获取检测变量的数据类型
var num = 10;
console.log(typeof num);
2.3 数据类型转换
- 使用表单、prompt获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。
2.3.1 转换为字符串
方式 | 说明 | 案例 |
---|---|---|
toString() | 转成字符串 | var num = 1;alert(num.toString()); |
String() 强制转换 | 转成字符串 | var num = 1;alert(String(num)); |
加号拼接字符串(隐式转换) | 和字符串拼接的结果都是字符串 | var num = 1;alert(num + '我是字符串'); |
2.3.2 转换为数字型
方式 | 说明 | 案例 |
---|---|---|
parseInt(string) 函数 | 将string类型转成整数数值型 | parselnt('10') |
parseFloat(string) 函数 | 将string类型转成浮点数数值型 | parseFloat('10.34') |
Number() 强制转换函数 | 将string类型转成数值型 | Number('12') |
js隐式转换(- * /) | 利用算术运算隐式转换为数值型 | '12' - 0 |
2.3.3 转换为布尔型
方式 | 说明 | 案例 |
---|---|---|
Boolean() 函数 | 其它类型转成布尔型 | Boolean('true'); |
- 代表空、否定的值会被转换成false,如:‘’、0、NaN、null、undefined
- 其余值都会被转换成true
三、运算符
- 运算符( operator )也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。
3.1 算数运算符
概念:算术运算使用的符号,用于执行两个变量或值的算术运算。
运算符:+(加)、-(减)、*(乘)、/(除)、%(取余数)
注意:
- 由于机器底层问题,浮点数运算存在精度问题
- 注意算术运算符的优先级,先乘除,后加减,有小括号先算小括号里面的
3.2 递增和递减运算符
如果需要反复给数字变量添加或减去1,可以使用递增(++
)和递减(--
)运算符来完成。
(1)前置递增运算符
++写在变量的前面
先加1,后返回值
(2)后置递增运算符
++写在变量的后面
先返回值,后加1
3.3 比较运算符
概念:比较运算符(关系运算符)是两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值( true / false)作为比较运算的结果。
运算符 | 说明 |
---|---|
<、> | 小于号、大于号 |
<=、>= | 小于等于号、大于等于号 |
== | 判等号(会转型) |
!= | 不等号 |
=== !== | 全等、要求值和数据类型都一致 |
3.4 逻辑运算符
概念∶逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。
逻辑运算符 | 说明 | 案例 |
---|---|---|
&& | 逻辑与 | true && false |
|| | 逻辑或 | true || false |
! | 逻辑非 | ! true |
3.4.1 短路运算(逻辑中断)
短路运算的原理∶当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值
(1)逻辑与
- 语法:表达式1 && 表达式2
- 如果第一个表达式的值为真,则返回表达式2
- 如果第一个表达式的值为假,则返回表达式1
(2)逻辑或
- 语法:表达式1 || 表达式2
- 如果第一个表达式的值为真,则返回表达式1
- 如果第一个表达式的值为假,则返回表达式2
3.5 赋值运算符
概念︰用来把数据赋值给变量的运算符。
赋值运算符 | 说明 |
---|---|
= | 直接赋值 |
+=、-= | 加、减一个数后再赋值 |
*=、/=、%= | 乘、除、取模后再赋值 |
3.6 运算符优先级
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | () |
2 | 一元运算符 | ++ – ! |
3 | 算数运算符 | 先* / % 后+ - |
4 | 关系运算符 | > >= < <= |
5 | 相等运算符 | == != === !=== |
6 | 逻辑运算符 | 先&& 后 || |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |