一 JS概述
1. 历史
1995年 JS出现在网景浏览器中
1996年 IE也开始出现了JS
1997年 指定了JS的标准规范ECMAScript 目前是ES6
2009年 JS开始向后端发展,出现了Node.js
|
二 JS入门
1. JS的运行方式
1. 内部写法
<script>JS代码</script>
|
2. 外部写法
(1) 先创建外部的01.js文件
(2) 将外部文件引入 <script src=”01.js”>这里不能再写其他的代码</script>
|
2. JS的语法规范
1. JS代码严格区分大小写
2. 每行代码结束后的分号可以省略不写
3. JS语法比html和css都要严格
如大小写写错、符号写成了中文符号,代码就无法正常执行,会报错
|
三 基础语法
1. 注释comment
注释: 用于解释代码的内容,被注释掉的内容不会被执行,可以提高代码的可阅读性和后期的可维护性
单行注释,格式 // 快捷键 Ctrl+/
多行注释,格式 /* */ 快捷键 Ctrl+Shift+/
|
2. 变量variable
变量的概念:
用于存储数据的容器,格式:
声明单个变量 var x = 1
声明多个变量 var a = 1,b =2
使用关键字var来声明变量,x表示变量的名称,会在内存中开辟空间,然后把后面的值1存进去
|
变量的赋值:
1. 变量可以声明的时候同时赋值,也可以先声明再赋值,但变量需要声明后才可以使用
2. 变量声明了但没有赋值,打印出来的是undefined(未定义)空
3. 变量不可以没有声明就直接使用,会报错(变量未定义)
4. 变量允许多次赋值,后面的值会把前面的值覆盖掉,重新赋值不需要再写var
5. 变量的多次赋值可以赋不同类型的值(这是弱类型语言的特点)
|
变量的命名规则:
1. 变量名称可以由字母、数字、下划线(_)、美元符号($)构成
2. 变量名称不可以用数字开头
3. 变量名称不可以是关键字,如:var if switch等
4. 变量名称不推荐使用中文
5. 变量名称要做到语义化(见名知意)
多个单词的命名方式:
userName 小驼峰命名法
UserName 大驼峰命名法
user_name 下划线命名法
|
3. 常量const
1. 和变量一样,都是用于存储数据的容器
2. 常量的值不允许被修改
3. 常量声明时必须赋值,不允许为空
|
4 数据类型 dataType
数据类型分为原始类型和引用类型
原始类型:数值型(number)、字符串型(string)、布尔型(boolean)、未定义型(undefined)、空(object)
(1. 数值型
整数类型
整数类型就是我们所说的整数 0 1 2 3...
数值有多种进制的表示方式
|
浮点型
浮点型就是我们所说的小数3.14
浮点型使用的是科学计数法的表示方式
如: 3.14E+2=314 789.34E-2=7.8934
|
(2. 字符串型
被引号包裹的值,引号不区分单双引号,JS中推荐使用单引号
|
检测数据的类型:
typeof 值
查看任意一个字符的编码:
'中'. charCodeAt()
|
(3. 布尔型
只有两个值,分别是true和false ,表示真和假,用于保存只有两个值的数据
如: 是否登录、是否会员、是否购买过...
|
(4. 未定义型
只有一个值,undefined表示空值
如:变量声明了但是未赋值就是undefined
|
(5. 空
只有一个值,null
表示空,但常与引用类型的数据一起使用,后面讲
|
5 数据类型转换
数据类型转换分为隐式转换和强制转换
1. 隐式转换
在运算过程中,自动产生的转换,底层会调用Number()
数字+字符串 数字会转为字符串拼接
如: var n1 = 2 + '3' //23
|
数字+布尔型 布尔型会转为数字进行运算 true->1 false->0
如: var n2 = 2 + false//2
|
字符串+布尔型 布尔型转为字符串拼接
如: var n4 = '2' + true //2true
|
JS中加号(+)的作用:
1. 数字之间会执行加法运算
2. 字符串之间会执行拼接运算
|
2. 强制转换
强制转换需要用到函数
函数:就是一个预先设计好的功能体,我们给它参数,它替我们执行逻辑运算,并给出结果
(1) 强制转换为数字Number()
var n1 = Number('3')//3 'number' var n2 = Number('3a')//NaN 'number' var n3 = Number(true)//1 'number' var n4 = Number(false)//0 'number' var n5 = Number(undefined)//NaN 'number' var n6 = Number(null)//0 'number'
|
NaN:Not a Number 不是一个数字
是在一个值转为数字的过程中,没有成功转成数字结果,得到了NaN
NaN和任何数字执行数学运算的结果还是NaN
|
(2) 强制转为整型 parseInt()
用于将小数或者字符串转为整型,其他类型转换结果为NaN
parseInt(9.9) //9 parseInt('7x') //7 parseInt('y2') //NaN parseInt(null) //NaN parseInt(undefined) //NaN
|
(3) 强制转换为浮点型(小数) parseFloat()
用于将字符串转为浮点型,其它类型的转换结果为NaN
parseFloat('3.14a')//3.14 parseFloat('a3.14')//NaN parseFloat('75')//75
|
(4) 强制转换为字符串【了解】 toString()
var n = 2 //number类型 n.toString() //‘2’
|
拓展
进制
10进制(DEC Decimal) 由0~9构成 逢十进一
2进制(BIN Binary) 由0和1构成 逢二进一 以0b开头
8进制(OCT Octal) 由0~7构成 逢八进一 以0开头
16进制(HEX Hexadecimal) 由0~9与a~f构成 逢16进一 以0x开头
win+R输入calc打开计算器,选择”程序员”可以进行不同进制间的转换
|