一、输入和输出语句和字面量
1、输入和输出语句
输入:
- prompt()
输出:
- alert()
- document.write()
- console.log()
2、字面量
- 数字字面量
- 字符串字面量
二、基本数字类型
1、数字类型(number)
2、字符串类型(string)
(1)字符串相加,用+
(12)模板字符串
外面用``(Esc下面的键),里面${变量}
let uname = prompt('请输入姓名:')let age = prompt('输入年龄')document.write(`大家好,我叫${uname},今年${age}岁了`)
3、布尔类型(boolean)
false,true
4、未定义类型(undefined)
声明一个变量但是没有赋值,就是undefined(应用场景:形参)
5、空类型(null)
赋值了,但是内容为空
6、NAN=NOT A NUMBER 错误类型
7、检测数据类型
typeof 变量
三、类型转换
js是弱数据类型,所以需要将数据转换成需要的数据类型
1、隐式转换
(1)+两边只要有一个字符串,另外一个也是字符串
(2)除了+的运算符,比如- * /都会把数据转换成数字类型
(3)+号作为正好解析可以转换成数字类型
2、显式转换
(1)Number(严格区分大小写)
(2)parseInt
(3)parseFloat
四、运算符
1、赋值运算符
(1)自增运算符
前置自增/自减:先自加再使用(++在前,先加)
后置自增/自减:先使用再自加(++在后,后加)
独立使用无区别——大多数都独立使用,采用后置
应用场景:计数
2、比较运算符
3、逻辑运算符
用于解决多重条件判断
&&:一假全假
||:一真都真
!:取反
优先级:!(非)> &&(与)> ||(或)
五、分支语句
表达式: 可以被求值的代码
语句:不一定有值
1、if分支
(1)if单分支语句
(2)if双分支语句
if,else
(3)if多分支语句
if,else if ,...,else if,else
2、三元运算符
比if双分支简单,一般用来取值
条件?满足条件执行的代码:不满足条件执行的代码
3、switch分支
分支少用if多分支,分支多用switch(效率更高)
switch(){case 值1:代码1breakcase 值2:代码2breakdefault 值3:代码3break }
六、断点调试
作用:更快找到bug
方法:浏览器f12打开调试界面-source-设置断点
七、循环语句
1、while循环
(1)基本语法
while(循环条件){//循环体 }
(2)循环三要素
a、变量起始值
b、终止条件
c、变量变化量
2、for循环
(1)基本语法
for(变量起始值;终止条件;变量变化量){//循环体 }
八、数组
数组是一个数据类型 ,可以把多个数据存储到单个变量中。
1、数组求和
2、求数组最大值和最小值
3、操作数组
(1)查:arr[i]
(2)增:arr.push()-加到数组末尾 | arr.unshift()-加到数组开头
(3)改:直接给arr[i]赋值
(4)删:arr.pop()-删末尾的并返回值 | arr.splice(起始位置,删除几个元素)
4、冒泡排序
(1)需要进行i=arr.length-1次排序
(2)每次排序需要进行j=arr.length-i-1次交换
九、函数
代码块,以实现代码复用。
1、函数调用
2、函数传参
function 函数名(参数列表){函数体 }
3、函数返回值
4、JS函数规则
(1)重名函数会被后面的覆盖
(2)实参多于形参,多的实参会被忽略
十、作用域
1、2种作用域
全局作用域,局部作用域
2、2种变量
全局变量,局部变量
3、变量访问原则-就近原则
在能够访问到 的情况下先局部,局部没有在找全局
4、匿名函数
(1)函数表达式
(2)立即执行函数-防止变量污染
//方法1 (function(形参){函数体})(实参) //方法2 (function(形参){函数体}(实参))
十一、逻辑中断
1、逻辑与(左边为false就短路)
一假则假,遇到false后面表达式不执行,逻辑中断
let age =18 console.log(false && age++) console.log(age) //输出age=18
都是真,返回最后一个真值
2、逻辑或(左边为true就短路)
十二、对象
对象是一种数据类型(object)-无序的数据集合
1、对象组成
(1)属性
(2)方法
let 对象名= {属性名:属性值,方法名:函数 }
2、对象使用-查
方法1:obj.name
方法2:obj['goods-name'],一定要加' '(需要记住)
3、遍历对象
for in
for (let k in obj){console.log(obj[k]) }
获得对象属性是k,获得对象属性值是obj[k]
4、内置对象
(1)Math
Math.PI
Math.random 随机生成数
Math.ceil 向上取整
Math.floor 向下取整
Math.round 四舍五入
Math.max 取最大值
Math.min 取最小值
Math.pow 幂方法
Math.sqrt 平方根
5、简单和引用数据类型
简单数据类型传的是值,复杂数据类型传的是地址。