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