JavaScript是一种运行在客户端(浏览器)的编程语言
ECMAScript(基础语法)、web APIs(DOM、BOM)
内部
外部
行内
书写的位置尽量写到文档末尾< /body >前面
外部js标签中间不要写代码,否则会被忽略
单行注释 //
多行注释 /* */
结束符是?
分号 ;
结束符可以省略
输入:prompt()
输出:alert()、document.write()、console.log()
计算机中用来存储数据的“容器”,简单理解是一个个的盒子
用来存放数据的。注意变量指的是容器而不是数据。
let
let
直接给它一个不同的值来更新
数组可以保存多个数据
[]中括号
只要用单引号、双引号、反引号包含起来的就是字符串类型
模板字符串,可以让我们拼接字符串更简便
用什么符号包含数据?反引号
用什么来使用变量?${变量名}
true和false
定义变量未给值就是undefined
如果检测变量是undefined就说明没有值传递过来
空类型
如果一个变量里面存放的是对象,如果还没准备好对象,可以放个null
一种数据类型转换成别的类型,JavaScript是弱数据类型,很多情况计算的时候,需要转换数据类型
系统自动做转换
自己写代码告诉系统转换成什么类型
Number
字符串内容里有非数字得到NaN
String
将等号右边的值赋予给左边,要求左边必须是一个容器
num+=5
只需要一个表达式就可以运算的运算符叫做一元运算符
经常用于计数来使用。用来计算多少次。
=是赋值
==是判断 只要求值相等,不要求数据类型一样即可返回true
===是全等,要求值和数据类型都一样返回的才是true
开发中请使用 ===
要么是true,要么是false
与&、或||、非!
num>5&&num<10
因为表达式可以被求值,所以它可以写在赋值语句的右侧。
而语句不一定有值,比如alert() for 和break等语句就不能被用于赋值
在满足条件期间,重复执行某些代码
变量起始值
终止条件(没有终止条件,循环会一直执行,造成死循环)
变量变化量(自增或者自减)
当如果明确了循环的次数的时候推荐使用for
当不明确循环的次数的时候推荐使用while
arr.push()
可以添加一个或者多个数组元素
返回的是数组长度
arr.unshift()
可以添加一个或者多个数组元素
返回的是数组长度
arr.pop()
不带参数
返回值是删除的元素
arr.shift()
不带参数
返回值是删除的元素
arr.splice(起始位置,删除的个数)
开发很常用,比如随机抽奖,比如删除指定商品等等
可以实现代码复用,提高开发效率
function执行特定任务的代码块
function
函数不调用自己不执行
调用方式:函数名()
循环代码写完即执行,不能很方便控制执行位置
随时调用,随时执行,可以重复调用
可以极大地提高了函数的灵活性
函数可以分成形参和实参
函数声明时,小括号里面的是形参,形式上的参数
函数调用时,小括号里面的是实参,实际的参数
尽量保持形参和实参的个数一致
逗号
函数执行后得到结果,结果是调用者想要拿到的(函数内部不需要输出结果,而是返回结果)
对执行结果的扩展性更高,可以让其他的程序使用这个结果
return
return后面不接数据或者函数内部不写return,函数的返回值是undefined
return能立即结束当前函数,所以return后面的数据不要换行写
全局作用域。函数外部或者整个script有效
局部作用域。也称为函数作用域,函数内部有效
全局变量
局部变量
局部变量或者块级变量 没有let声明就直接赋值的当全局变量看
强烈不提倡
还有一种特殊情况,函数内部的形参可以当作局部变量看
采取就近原则的方法来查找变量最终的值
防止变量污染
无需调用,立即执行,其实本质已经调用了。
多个立即执行函数之间用分号隔开
对象是一种数据类型
无序的数据的集合
无序的数据的集合
可以详细的描述某个事物
没有
属性和值用:隔开
多个属性用,逗号隔开
对象名.属性
对象名.属性=新值
对象名.新属性名=新值
点形式 对象.属性
[]形式 对象[‘属性’]
点后面的属性名一定不要加引号
[]里面的属性名一定加引号
后期不同使用场景会用到不同的写法
对象.方法()
person.sayHi()
可以,跟函数使用方法基本一致
for in
获得对象属性是k
获得值是obj[k]