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 传入参数调用函数的结果依然是根据传入参数计算的。
