JS基础
[if !supportLists]1. [endif]声明变量的方法var 变量名=变量值;(同时声明多个变量中间用 , 隔开)
[if !supportLists]2. [endif]输出语句①alert() 弹出警示框 ②console.log() 打印输出信息 ③Prompt(提示文本,默认值) 用户输入框
数据类型:①简单数据类型:number(数字型),boolean(布尔型),string(字符串型),null,undefined
②复杂数据类型:object对象 数组
[if !supportLists]3. [endif]数字型Number :①(Infinify)无穷大(前面加个 - 为无穷小)
②ISNaN()判断非数值,是数值返回false,不是返回true
[if !supportLists]4. [endif]字符串型string :①检测获取字符串长度 变量名.length
②字符串+任何类型=新的字符串
[if !supportLists]5. [endif]布尔型boolean:①布尔型和数字型相加时 true=1,false=0 ,undefined和数字相加结果是NaN
[if !supportLists]6. [endif]检测变量的数据类型typeof: (typeof 变量),prompt取来的值是字符串型
[if !supportLists]7. [endif]
JS数据类型的转换
[if !supportLists]1. [endif]转字符串:①变量.toString() ②String(变量) ③ + 号拼接
[if !supportLists]2. [endif]转数字型:①parseInt(变量)得到整数 ②parse Float(变量)得到小数
③Number(变量) ④隐式转换( - * / )
[if !supportLists]3. [endif]转布尔型:①代表空、否定的值会转为false,其余值为true
JS运算符
[if !supportLists]1. [endif]算术运算符:+ - * / %(取余) (注意不能直接判断两个浮点数是否相等)
[if !supportLists]2. [endif]递增或递减运算符:①前置递增、减 ++a?- - a ②后置递增、减 a++?a - -
[if !supportLists]3. [endif]比较运算符:> 大于 < 小于 > = 大于等于 < = 小于等于 = = 判等号
!= 不等号 = = = 全等(值和数据类型相同) != = 不全等
[if !supportLists]4. [endif]逻辑运算符:&& 且 || 或 !非 (返回布尔值)
[if !supportLists]5. [endif]短路运算(逻辑中断):当有多个表达式时,左边的表达式值可以确定结果时,就不再继续右边的运算,①与 :左真,返右 ,左假或为0,返左 ②或 :左真,返左,左假或0,返右
[if !supportLists]6. [endif]赋值运算符:① = 直接赋值 a=10; ② +=/ - = 加、减一个数再赋值 a+=5 即a=a+5
③*= 、/ = 、% = 同上
[if !supportLists]7. [endif]运算符优先级
小括号()
一元运算符++、- -、 !
算术运算符先* / % 后+ -
关系运算符> 、< 、>= 、 <=
相等运算符= =、 != 、= = = 、 != =
逻辑运算符先&& 后 | |
赋值运算符=
逗号运算符,
JS流程控制
[if !supportLists]一、[endif]分支
[if !supportLists]1. [endif]if 语句
If (条件表达式){
条件成立执行的代码
} else if (条件表达式2){
条件2成立执行的代码
} else {
否则执行的代码
}
[if !supportLists]2. [endif]三元表达式(?:)(如果条件表达式成立,则执行表达式1,否则执行表达式2)
条件表达式?表达式1:表达式2
[if !supportLists]3. [endif]switch语句(比较确定值,分支多用)
switch(表达式){
case value1:
执行语句1;
break;
case value2:
执行语句2;
break;
default:
最后执行的语句;
}
[if !supportLists]二、[endif]循环(循环体和终止条件)
[if !supportLists]1. [endif]for 循环 (通常跟计数有关)
For (初始化变量;条件表达式;操作表达式){
循环体
}2. 双重for循环(外层循环一次,里层循环执行全部)
for (外层初始化变量;外层条件表达式;外层操作表达式){
执行语句;
for (里层初始化变量;里层条件表达式;里层操作表达式){
执行语句;
}
}
3 . while循环
while(条件表达式){
语句;
操作表达式;
}
[if !supportLists]4. [endif]do while循环(先执行一次循环,再判断条件,若值为真则继续,否则推出循环)
do {
语句
} while (条件表达式)
5. 关键字(continue 与 break )
continue:立即跳出本次循环,执行下一次循环。
break:立即跳出整个循环(循环结束)。
JS数组
[if !supportLists]1. [endif]概念:一组数据的集合,数组中可以存放任意类型的元素
[if !supportLists]2. [endif]创建方式:①利用new创建 var 数组名=new Array(参数)
② 利用数组字面量创建 var 数组名 = [ 参1 ,参2 ,..... ];
3. 数组的索引号:访问数组元素的序号,下标从0开始
用数组名[ 索引号 ] 可获取数组中的元素,若无元素,则输出undefined
[if !supportLists]3. [endif]遍历数组(取出全部元素,从头到尾访问一次)
var arr=[ 1,2 ,3 ]; (数组名.length表示数组的长度,可动态监测元素的个数)
for (var i = 0;i < arr.length;i ++){
console.log(arr[ i ])
}
[if !supportLists]4. [endif]数组中新增元素① 修改length:数组名.length = 值;(增加的值输出为undefined)
② 修改索引号: 数组名[ 索引号 ] = ‘值’;
JS函数
[if !supportLists]1. [endif]概念:封装了一段可被重复调用执行的代码块,目的是让代码重复使用
[if !supportLists]2. [endif]函数的声明方式① 自定义关键字: function 关键字 (形参){ 函数体 }
② 函数表达式: var 变量名 = function (形参){ 函数体 }
注:多个参数间用,隔开
[if !supportLists]3. [endif]函数的使用:① 声明函数 ② 调用函数(函数不调用不执行)
调用函数:关键字/变量名 + ( 实参 ) || 函数可以相互调用
[if !supportLists]4. [endif]函数的返回值(return)
function getSum(n1,n2){
return n1 + n2;
}
[if !supportLists]5. [endif]arguments (只有函数有) :当我们不知道有多少参数传递时,可用argument 获取(储存传递的所有实参),其展示的形式是一个伪数组,因此可以遍历,但不具有push()、
pop()等方法。
[if !supportLists]6. [endif]函数作用域:①全局作用域:整个script 标签或是一个JS文件,或为声明的变量
② 局部作用域:在函数内部起效果和作用的
7. 作用域链:根据在内部函数可以访问外部函数变量这种机制,用链式查找决定哪些数据能被内部函数访问(就近原则)
8. JS预解析 ① 预解析:变量提升和函数提升 ② 按顺序执行代码
JS对象
[if !supportLists]1. [endif]对象的概念:对象是一组无序的相关属性和方法的集合
[if !supportLists]2. [endif]创建对象的方式:
①字面量: var 对象名 = {
(属性)uname : ‘张三’,
sex :’男’,
age :18 ,
( 方法) sayHi :function () { }
}
注意:每个属性和方法间用,隔开
②利用 new Object: var 对象名 = new Object()
(属性)对象名.uname = ‘张三’;
对象名.sex = ‘男’;
对象名.age = 18 ;
( 方法) 对象名.sayHi = function () { }
这里采用赋值方式,每个键值对间用;隔开
③ 利用构造函数(可抽取出公共属性跟方法):
function 函数名 () {
this.属性 = 值 ;
this.方法 = function () { } ;
}
(创建实例对象) : var 变量名 = new 函数名(实参 )
[if !supportLists]3. [endif]调用对象(获取对象的属性值):① 对象名.属性 ② 对象名[ ‘属性名’]
③调用对象的方法: 对象名.方法名()
[if !supportLists]4. [endif]遍历对象for....in
for (var 变量 in 对象名 ){
console.log( 变量) ; //得到属性名
console.log( 对象名[ 变量 ]) ; //得到属性值