1.变量
var num=10;
var num1,num2,num3;
num1=10;
num2=20;
num3=30;
var num1=10,num2=20,num3=30;
注意点:
console.log(a); //报错
var b;
console.log(b); //undefined
c=10;
console.log(c); //10 会默认为全局变量,正常输出,不推荐这种写法
2.数据类型
var num=10; //数值类型
var str='123'; //字符串类型
var flag=true; //布尔类型
var obj = {} //对象类型,默认值null
var undefined = undefined; //未定义类型
数据类型的转换:
转换成字符串类型:
str.toString() //大部分类型都有toString()方法
String(str) //undefined,null等特殊值,需要用到String()
转换成数值类型:
parseInt() 123.123abc // 123
parseFloat() 123.123abc //123.123
Number() 123.123abc //报错
转换成布尔类型:
Boolean()
转换为false的五种情况: 0 '' null undefined NaN
其他的值都转换为true: 非0和非空都为true
隐式转换:
任意类型+ 字符串 会转换为字符串
任意的类型 - * / 会转换为数值
特殊情况:
NaN : 不是一个数字
isNaN(); 不是人
数据类型检测:
typeof str
3.条件判断
单向判断
if(条件满足){
//执行语句
}
双向判断
if(条件满足){
//执行语句
}else{
//条件不满足执行
}
多向判断
if(条件1满足){
//执行语句1
}else if(条件2满足){
//执行语句2
}else if(条件3满足){
//执行语句3
}else{
//以上都不满足,执行这里
}
精准判断
switch(条件){
case 条件1:
语句1;
break;
case 条件2:
语句2;
break;
default:
最后的语句;
break;
}
三元运算符
条件 ? 条件满足返回 : 条件不满足返回
总结:
if和switch的区别?
if适合用于确定范围的判断
switch适合用于确定的具体值判断
2.switch的注意点
switch的条件比较是全等(===)
break可以省略,但是会穿透执行.
4.循环
循环都必须有三个条件: 开始条件,条件范围,条件增量
for循环
var sum=0;
for(var i=1; i<=100; i++){
sum+=i;
}
while循环
var sum = 0;
var i=1;
while(i<=100){
sum+=i;
i++;
}
do-while循环
var sum =0;
var i=1;
do{
sum+=i;
i++;
}while(i<=100)
总结:
1.三种循环之间的区别?
for适用于循环次数确定的情况,while和do-while适用于循环次数未知的情况
while是先判断,再执行, do-while是先执行一次,再判断
2.continue 和 break
continue 跳过当前循环
break 跳出整个循环
5.数组
var arr=[]; 数组的基本语法
var arr[1,2,3,4,5]; 数组可以存多个值,建议存同类型的值,但是可以存任意类型的值.
arr.length 数组的长度
arr[0] 表示数组中的第一个元素
arr[1] 表示数组中的第二个元素
arr[0]=10; 表示将数组中的第一个元素修改或者赋值为0
动态增加数组 arr[arr.length]
6.函数
函数的作用: 封装功能,可以复用.
函数的语法: 定义 + 调用
函数的定义:
function 函数名(参数){
//执行语句
return 结果;
}
函数的调用:
函数名(值); //可以将函数的返回值存到变量中使用
形参: 函数定义的时候的参数,本质上是一个局部变量
实参: 函数调用的时候的参数,需要传入一个具体的值.
注意; 形参和实参建议一一对应
内置实参对象: arguments 使用中括号数组的方式获取实参
函数的其他写法:
匿名函数: function(){}
函数表达式: var fn=function(){} fn();
自调用函数: (function(){})()
7.对象
对象: 就是将现实事物抽象为功能代码. 将现实世界的东西,用对象的语法格式来表示.
对象的语法: 对象中有属性和方法
对象的三种写法:
1.字面量写法
var zs={
name:'张三',
age:18,
sayHi:function(){
console.log("你好");
}
}
zs.name
zs.age
zs.sayHi()
2.new Object()写法
var zs = new Object();
zs.name='张三';
zs.age=18;
zs.sayHi=function(){}
3.构造函数写法
function Person(name,age){
this.name= name;
this.age=age;
this.sayHi=function(){}
}
var zs = new Person('张三',18);
对象的遍历: for-in
for(var key in Obj){
console.log(key+'--'+Obj[key]);
}
8.内置对象
Math对象 : 数学对象 Math.random() Math.floor() Math.ceil() Math.max() Math.min()
任意区间随机数公式:Math.floor(Math.random() * (max - min + 1) + min);
Date()时间对象:
var date = new Date(); //获取当前时间
var date = new Date('2018-8-8 12:12:12'); //获取当前时间
var date = new Date('2018/8/8'); //获取当前时间
var date = new Date(2018,7,6); //获取时间,月份会大1 ,7 表示8月份
1.先转换成毫秒,然后再转换成年月日,时分秒
date.getTime()
date.Valueof()
date.now()
2.通过对象的内置方法,直接获取年月日,时分秒
date.getFullYear(); //年
date.getMonth(); //月 0 一月份 1 二月份
date.getDate(); //日
date.getDay(); //星期几, 0 周日 1周一 6周六
date.getHours(); //小时
date.getMinutes(); //分钟
date.getSeconds(); //秒数
3.会计算时间差.
1.毫秒相减 ,除以1000,变成秒数差
2.计算天,时,分,秒
d = parseInt(总秒数/ 60/60 /24); // 计算天数
h = parseInt(总秒数/ 60/60 %24) // 计算小时
m = parseInt(总秒数 /60 %60 ); // 计算分数
s = parseInt(总秒数%60); // 计算当前秒数
3.判断是否个位数,然后补0
h = h<10? '0'+h : h;
字符串对象
1.indexOf(要查找的字符,开始位置) 开始位置不写默认从0开始,找不到返回-1 ----查找字符
2.charAt(字符位置) 给一个位置,返回该位置的字符 ----获取字符
3.subStr(开始位置,截取个数) 返回截取的字符串结果 ----截取字符
4.replace(要替换的字符,替换的新字符) ----替换字符
5.join(连接符) 将数组通过连接符连接,返回字符串 ----连接字符
6.split(连接符) 将字符根据连接符分割成多个值的数组,返回数组 ----分割字符
7.toUpperCase() 将字符串转换为大写 ----转换成大写
8.toLowerCase() 将字符串转换为小写 ----转换成小写
数组对象:
1.push() 后面添加元素
2.pop() 后面删除元素
3.unshift() 前面添加元素
4.shift() 前面删除元素
5.reverse() 翻转数组
6.sort() 排序数组
arr.sort(function(a,b){
return a-b; //升序
})
arr.sort(function(a,b){
return b-a; //降序
});
7.concat() 合并数组
var arr3 = arr1.concat(arr2);
8.splice 删除/修改/添加数组
arr.splice(开始位置); //从开始位置删除到最后
arr.splice(开始位置,删除个数); //从开始位置删除几个
//新增内容
arr.splice(开始位置,0,新增元素);
arr.splice(1,0,'a','b'); //在索引1元素之前插入a和b
//替换内容
arr.splice(开始位置,删除个数,新增元素);
arr.splice(1,1,'d'); //在索引为1开始删除一个元素,替换为
9.indexOf() 查找数组
查找数组中的元素位置
arr.indexOf(元素); //返回元素的索引位置,如果没有返回-1
arr.indexOf(元素,开始位置); //从开始位置继续向后找.
arr.lastIndexOf(元素) //返回元素索引位置,如果没有返回-1,从后往前找
10.tostring() 转换为字符串
数组转换为字符串
arr.toString(); 将数组中的每个元素用逗号链接成字符串
11.join() 数组拼接分隔符
arr.join(); //默认以逗号连接数组,拼接成字符串
arr.join(分隔符); //以分隔符连接数组元素,拼接成字符串
9.其他
1.变量的命名规范
1.字母,数字,下划线,$等组合,
2.数字不能开头
3.不能是关键字
4.不能是中文
5.建议使用驼峰命名
2.输出打印
alert()
console.log()
prompt();
3.转义字符
\n 换行
\t tab制表符
4.预解析
变量声明和函数声明提前
5.作用域和作用域链
作用域:变量的作用范围
作用域链: 人外有人,天外有天
6.局部变量和全局变量
全局变量有两种:
1.在括号外面直接写的变量
2.在函数内部,未使用var声明但直接赋值的变量
局部变量:
1.形参就是局部变量
2.函数内部的变量就是局部变量
注意:js中没有块级作用域
{
var a=1;
}
7.this和new的理解
this的指向问题:
1.函数在定义this的时候是不确定的,只有在调用的时候才可以确定
2.一般函数直接执行,内部this指向全局window
3.this的指向,谁调用指向谁
4.构造函数中的this 对象的实例
new在执行时会做四件事情
1.new会在内存中创建一个新的空对象
2.new会让this指向这个新的对象
3.执行构造函数里面的代码,目的是给这个新对象加属性和方法
4.new会返回这个新对象,所以构造函数里面不需要return
8.运算符和优先级
1.()
2.++ -- !
3.先* / % 后+ -
4.< > <= >= == != === !==
5.先&& 后||
6.赋值运算符
注意: 等于和不等于 == === != !==
++a 和 a++
&& 并且
|| 或者
! 取反
---------------------练习案例------------------------
1.三种输出打印语句
2.交换两个变量的值
3.字符串拼接
4.计算年龄案例
5.一元运算符
6.进入网吧的年龄
7.判断闰年
8.根据分数划分等级
9.查询水果价格案例
10.输出1-100的数
11.求1到100的累加
12.打印三行三列星星
13.打印倒三角形
14.打印九九乘法表
15.continue和break案例练习
16.while和do-while练习
17.数组的遍历
18.数组的最大值,最小值,求和,平均值
19.数组字符串分割
20.筛选数组
21.翻转数组
22.冒泡排序(从小到大,从大到小)
23.用函数实现1-100的累加和
24.用函数实现任意两个数的和
25.写一个函数 要求:输入某年某月某日,判断这一天是这一年的第几天?
26.对象和JSON数据的遍历
27.生成rgb随机颜色
28.实现倒计时案例
29.获取年月日时分秒星期几效果
30.对象的三种写法
第一遍:找答案
第二遍:自己写不会查
第三遍:完全独立写出来.
---------------------重难点--------------------------
知识重难点:
条件判断,循环,对象,数组,函数,内置对象
前置++和后置++
预解析
练习难点:
冒泡
三行三列星星
获取时间差
获取一个时间是1年中的多少天
九九乘法表
Javascript基础复习提纲
最新推荐文章于 2019-12-30 20:21:08 发布