变量声明
var 全局作用域 可能会引起冲突 大多数情况下不用
let const 是从ES6添加的
let 和 const 的区别在于
let可以重新赋值
const不可以
所以大多数情况下都是用const 因为不可重新赋值可以
让程序安全少出错
除非有重新赋值的需求 不然就用const
const 声明变量时必须赋值 不然会报错
let可以声明且不赋值
数据类型
六种基础数据类型:
string 、 number、 boolean、 null 、undefined 、symbol(ES6)
console.log(typeof ‘变量名’) 判断变量类型
如果变量为null 返回可能为 object.
字符串模板 :使用反引号 `` 模板里变量用${}
字符串属于string对象,也继承有string对象的的属性和方法
cons s = ‘hello world’
属性:
conslog.log(s.length) 控制台输出: 12
1、length 返回字符串长度
▲ 方法有括号.toUpperCase(),属性没有.length
▲ 方法和属性可以链式嵌套
方法:
conslog.log(s.toUpperCase()) 控制台输出: HELLO WORLD
1、返回大写 :toUpperCase()
2、截取字符串: substring(num1,num2) num1,num2为字符串起始位置
3、分割字符串: split() 返回分割号的字符数组
数组
数组的几个常用方法
push 添加一项
pop 去掉最后一项
判断是否为数组 Array.isArray(xxx)
得到索引 .indexof(‘数组某一项’) 会返回该项的索引值
对象
对象:键值对,可嵌套
const person = {
firstName: ‘t1’
lastName: ‘t2’
add: {
city: ‘sh’,
state: ‘MA’
}
}
嵌套对象访问 console.log(persion.add.city) 控制台输出 :sh
▲解构 重构
const { firstName , lastName , add:{city} } = persion
console.log(city) 😃 输出: sh
▲直接添加属性
persion.email = “001@qq.com”
console.log(persion.email) 输出: 001@qq.com
数组对象
const todos = [
{
id : 1,
text:‘apple’
isCompleted: true
},{
id : 1,
text:‘apple’
isCompleted: true
}
]
它和json语法很相似,json的键使用双引号,字符串也是双引号。json中没有单引号,有则报错。
有支持数组对象转换为json语法的网页
{
“iconList”: [{
“id”: “0001”,
“imgUrl”: “http:1.png”,
“desc”: “景点门票”
}, {
“id”: “0002”,
“imgUrl”: “http:2.png”,
“desc”: “滑雪季”
}]
}
在代码中也可以用脚本将对象转换为json数据发送给服务器,
const todoJSON = JSON.stringify(todos)
console.log(todoJSON) 这时候控制台会输出todos数据的json格式数据
循环
普通循环 for循环、while循环
for(let i = 0 ; i < todos.length; i++){
sonsole.log(todos[i].id)
}
另一种循环方式:
for(let todo of todos){
sonsole.log(todo.id)
}
高级数组方法:
forEach ---- 循环遍历
map ---- 循环遍历创建新数组
filter ---- 根据条件创建新数组
todos.forEach (function(todo){
sonsole.log(todo.text);
})
const A = todos.map (function(todo){
return todo.id
})
会返回一个普通数组。包含todos每项的id值。
const B = todos.map (function(todo){
return todo.isComplete === true
}
会返回符合条件的每项的所有数据。成为一个新数组。
所有方法也可以链式使用:
const B = todos.map (function(todo){
return todo.isComplete === true
}…map (function(todo){
return todo.id
})
会返回符合todo.isComplete === true条件的每一项中的id值
成为一个新数组。
条件语句
if— else if — else
switch (){ case ‘条件’ : 执行;break; default(都不满足情况) : 执行;break;}
一些常用操作符
与 &&
或 ||
非 !
三元操作符 ? const = ‘条件’ ? ‘true’ : ‘false’
函数
function addNum(num1, num2){
sonsole.log(num1+num2)
}
addNum(4,5) ; 结果:9
直接在形参那里赋值的意义是:给形参一个默认值。
function addNum(num1 = 1, num2 = 2)
直接调用函数的结果是 3
传入参数调用函数的结果依然是根据传入参数计算的。