变量:
变量的使用分为两步:
(1)声明变量 var
(2)赋值
变量的初始化: 声明一个变量并完成赋值。
一个变量被重新赋值后,它原有的值就会被覆盖,变量以最后一次赋值为准。
Tips: 同时声明多个变量名,只需要一个var,变量之间用“逗号”隔开。
eg: var a = 1, b = 2, c = 3; (一次性声明多个变量,变量初始化)
变量的命名规范: 由字母、数字、下划线、美元符号($)组成。
Tips:严格区分大小写,不能以数字开头,不能是关键字、保留字,变量名必须要意义,遵守驼峰命名法,首字母小写,后面单词的首字母大写。
数据类型:
JavaScript是一种弱类型或者说是动态语言,不用提前声明数据的类型。
JS的数据类型分为两类:
(1) 简单的数据类型: {number、 string、 boolean、 undefined、 null}
(2) 复杂的数据类型: {object}
数字前面加‘0’表示八进制;数字前面加‘0X’表示十六进制。
字符串型(string): 字符串可以是引号中的任意文本,其语法为“双引号”和‘单引号’。
字符串的转义字符:\n-换行符; \t-tab缩进。
字符串的length属性可以获取整个字符串的长度。
字符串之间的运算:数值相加,字符相连。
布尔型(boolean): true 和 false。
未定义数据类型(undefined):如果一个变量声明未赋值。
undefined和数字相加最后的结果是NaN。
获取数据类型:typeof可以用来获取检测变量的数据类型。
prompt 取过来的值字符型的。
数据类型的转换:
(1) toString ( )
(2) string() 强制转换
(3) 加号拼接字符串
数字类型的转换:
(1) parseInt (string) 将string类型转换成整数值
(2) parseFloat (string) 将string类型转换成浮点数数值
(3) number() 强制转换函数
(4) JavaScript隐式转换 运算(+,-,*,/, %)
布尔类型的转换:
(1) 代表否定的值会被转换为false, “0,NaN, null, undefined”
(2) 其余值都转换为true
递增和递减运算符:
递增(++)、递减(--)既可以放在变量前面,也可以放在变量后面。
递增和递减运算符必须配合变量使用。
Tips: (1)前置自增(++i) 和后置自增(i++)如果单独使用,效果是一样的。
(2) 前置递增(++i):先自加1,后返回值。
(3) 后置递增(i++):先返回原值,后加1。
逻辑运算符短路运算:
当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式。
逻辑运算符的优先级:一元运算符里面的逻辑非优先级很高,逻辑与比逻辑或优先级高。
JavaScript的流程控制:
流程控制: (1) 顺序流程控制
(2) 分支流程控制
(3) 循环流程控制
if -else语法结构
if(条件表达式) {
执行语句1
}else {
执行语句2
}
switch语法结构
switch (表达式) {
case value1:
执行语句1;
break;
case value2:
执行语句2;
break;
...
default:
执行最后的语句;
}
Tips:(1)表达式经常写成变量
(2) 如果当前case中没有break,则不会退出switch,继续执行下一个case
(3) 变量的值和case里面的值相匹配的时候是全等(值和数据类型一致)
switch结构通常处理分支较多,结构比较清晰。分支较少则用if。
for循环的语法结构
for (初始化变量; 条件表达式; 操作表达式) {
循环体
}
双重for循环语法结构
for (外层的初始化变量; 外层的条件表达式; 外层的操作表达式) {
for (内层的初始化变量; 内层的条件表达式; 内层的操作表达式 {
执行语句
}
}
外层的循环执行一次,里面的循环全部执行。
经典案例(九九乘法表):
<script> var str = ""; for (var i = 1; i <= 9; i++) { for (var j = 1; j <= i; j++) { str += j + "×" + i + "=" + i * j; } str += "\n"; } console.log(str); </script>
while 循环的语法结构
while (条件表达式) {
循环体
}
do while循环的语法结构
do {
循环体
}while (条件表达式)
do while先执行一次循环体,再判断条件,最少执行一次。
while先判断后执行;do while先执行一次,再判断。
coutinue 关键字
用于立即跳出本次循环,继续下一次循环。
break 关键字
用于立即跳出整个循环(循环结束)。
JavaScript的数组:
数组是一种将一组数据存储在单个变量名下的优雅方式。
1.利用new创建数组
var 数组名 = new Array();
2.利用数组字面量创建数组
var 数组名 = [ ];
数组之间的数据元素一定要用逗号隔开。
数组可以存放任意数据类型。
数组的索引:
索引(下标)用来访问数组元素的序号(数组下标从0 开始)
数组可以通过索引来访问、设置、修改对应的数组元素。
遍历数组:把数组中的每个元素从头到尾都访问一次。
筛选数组:
冒泡排序是一种算法,把一系列的数据按照一定的顺序进行数据排列(一次比较两个元素)
JavaScript函数:
函数就是封装了一段可以重复执行的调用的代码块,就是让代码重复执行。
声明函数,调用函数
function 函数名(形参1,形参2) { //函数不调用,代码不执行
函数体
}
函数名(实参1,实参2)//调用函数
Tips: (1)形参可以看做是不用声明的变量。
(2)多个参数之间用逗号隔开。
return 语句
function 函数名() {
return 需要返回的结果
}
break, coutinue, return 的区别:
break:结束当前的循环体。
coutinue: 跳出本次循环,继续执行下次循环。
return: 不仅退出循环,还能返回return语句中的值,同时还可以结束当前的函数体内的代码。
所有的函数都内置了arguments对象(2020.12.16号复习)
函数的两种:
(1)利用函数的关键字定义函数
(2) 函数表达式(匿名函数)
var 变量名 = function () {
函数体
}
作用域: 限定名字的可用性的代码范围就是这个名字的作用域,提高程序的可靠性,减少命名冲突。
作用域分为全局作用域和局部作用域。