Javascript基础复习提纲

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年中的多少天
	九九乘法表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值