第一周学习复习

129 阅读2分钟

第一周学习复习

javescript的两种使用方式

1、在HTML页面写上一个标签: - 临时测试/上课用
			<script>
				js代码
			</script>

2、创建一个xx.js文件,在里面书写js代码,最后在HTML页面引入
			<script src="xx.js文件路径">//此处不再支持书写代码了</script>

1.js三种输出方式

console.log();    打桩
document.write(); 缺点:如果绑定事件过后会替换掉页面所有东西
alert();          缺点:会卡住页面

2.变量和常量

变量语法:var 变量名=变量值;

常量语法:const 常量名=常量值;

常量值一点设置后不可以修改

js的两种使用方式

1、在HTML页面写上一个标签:

			<script>
				js代码
			</script>

2、创建一个xx.js文件,在里面书写js代码,最后在HTML页面引入

			<script src="xx.js文件路径">//此处不再支持书写代码了</script>

算数运算符

+ - * / %

数据类型

1、原始/基本/值类型:String、Number、Boolean、Undefined、Null

2、引用/对象(属性和方法)类型:11种 - Array/Function

数据类型的转换

一、隐式转换

1、算术运算带有隐式转换:默认转为数字,在运算 特殊:1、+运算,如果碰到字符串,变成了拼接操作 2、-*/%,字符串可以转为数字,但是纯数字组成的,但凡包含一个非数字字符,则为NaN 3、true->1 false->0 undefined->NaN null->0 4、NaN:不是一个数字,但是是数字类型

二、显示转换/强制转换

1、转字符串:

var str=x.toString();//x不是undefined和null,因为undefined和null不能使用.
			页面上获取到的数据默认都是字符串类型
                        
                        
2、转数字:
			var num=parseInt/Float(str);//专门为字符串转数字准备的方法
			原理:从左向右依次读取每个字符,碰到非数字字符则停止,Int不认识小数点,Float认识第一个小数点,如果一来就不认识,则为NaN   
Number(x);//x可以是万能的,相当于隐式转换

函数

1、创建:
	   function 函数名(形参,...){
		函数体;
	   }

2、调用:程序员在JS里面调好:函数名(实参,...);

绑定在页面元素上:<any on事件名="函数名()"></any>

分支结构

比较运算符:> < >= <= == !=

逻辑运算符:&&(并且)  ||(或者)   !(非)

结果都是一个布尔值

if(条件){操作}

if(条件){操作}else{默认操作}

if(条件){操作}else if(条件){操作}else{默认操作}

循环结构

1、while循环
    var i=0;
   while(i<10){
	console.log(i);
	i++;
   }

2、for循环
    for(var i=0;i<10;i++){
	console.log(i);
   }

3、死循环:
   while(true){}
   for(;;){}

4、循环流程控制语句:退出循环:break;

数组

        1、创建:
	   直接量:var arr=[1,2,3,4];
	   构造函数:var arr=new Array(1,2,3,4);

	2、使用
	   访问:arr[i]
	   添加:arr[i]=新值;//i处已经有人了,则为替换

	3、数组三大不限制:
		1、不限制长度
		2、不限制类型
		3、不限制下标越界

	4、数组的属性:arr.length - 得到长度
		1、缩容:arr.length-=n;
		2、向末尾添加元素:arr[arr.length]=新值;
		3、获取倒数第n个元素:arr[arr.length-n];

	5、遍历数组:
		for(var i=0;i<arr.length;i++){
			arr[i];//当前次元素
		}

Document Object Model(DOM)

树根:是一个document对象,document对象是不需要程序员来创建的,由浏览器的js解释器负责创建,一个页面只有一个document

作用:提供了一些属性和方法,可以让我们程序员去操作整个DOM树(增删改查每一个元素)
	  DOM节点/DOM元素/DOM对象其实都是同一个意思:一个标签、文本、属性、样式;

查找元素

1、通过HTML的特点去查找元素:3种方式
		1、通过ID找到元素:var elem=document.getElementById("id值");
		   在当前DOM树中,根据元素的id,获取具体的DOM节点
		   找到了:返回对应的元素
		   没找到:返回null
		   特殊:1、如果页面上有多个重复的id,只会返回第一个
			 2、此方法找到的是单个元素 - DOM节点是可以直接用于做操作的
			 3、此方法你不能使用 - 以后id留给后端使用,而且此方法一次也只能找到一个元素操作起来不方便
2、标签名查找:var elems=document/已经找到的某个父元素.getElementsByTagName("标签名");
		   在当前DOM树中,根据元素的标签名获取元素们
		   找到了:返回是一个DOM集合/DOM类数组对象
		   没找到:空集合
		   特殊:1、返回的不是一个DOM节点,而是一个DOM集合,是不能直接用来做操作的,要么加下标拿到某一个,要么遍历拿每一个
			    DOM集合:类数组对象,类似数组:1、都可以使用下标  2、都可以使用length  
			 2、不一定非要从树根开始查找元素,也可以写一个你已经找到的某个父元素
3class名查找:var elems=document/已经找到的某个父元素.getElementsByClassName("class名");
		   在当前DOM树中,根据元素的标签名获取元素们
		   找到了:返回是一个DOM集合/DOM类数组对象
		   没找到:空集合
		   特殊:1、返回的不是一个DOM节点,而是一个DOM集合,是不能直接用来做操作的,要么加下标拿到某一个,要么遍历拿每一个
4、通过节点之间的关系进行查找元素:前提:必须先要找到一个对象,才能使用关系:
		父:xx.parentNode; - 单个元素
		子:xx.children; - 集合
		第一个儿子:xx.firstElementChild; - 单个元素
		最后一个儿子:xx.lastElementChild; - 单个元素
		前一个兄弟:xx.previousElementSibling;  - 单个元素
		后一个兄弟:xx.nextElementSibling;  - 单个元素

	只有单个元素可以做操作,集合不行

操作内容

       1、innerHTML:获取 或 设置某个元素的内容部分 - 可以识别标签的
	   获取:elem.innerHTML; - 多半用于判断操作
	   设置:elem.innerHTML="新内容"; - 修改内容

	2、innerText:获取 或 设置某个元素的文本部分 - 不能识别标签的
	   获取:elem.innerText; - 多半用于判断操作
	   设置:elem.innerText="新文本"; - 修改内容

	   以上两个属性:都是为双标签准备的

	3、value属性:专门为单标签(input)操作内容准备的
	   获取:input.value; - 多半用于判断操作
	   设置:input.value="新内容"; - 修改内容

操作属性

1、获取属性值:elem.getAttribute("属性名"); - 多半用于判断操作
2、设置属性值:elem.setAttribute("属性名","属性值"); - 修改

以上两个方法有点繁琐 - 但是无敌的
	能够简化:
		1、获取:elem.属性名; - 多半用于判断操作
		2、设置:elem.属性名="属性值" - 修改

		缺陷:1、不能操作自定义属性,只能操作标准属性
		      2classES6升级的时候成为了一个关键字,所以不可以在用class,换为了className

操作样式

获取:elem.style.css属性名 - 多半用于判断操作
设置:elem.style.css属性名="css属性值"; - 修改

	   特殊:1、css属性名,要把有横线的地方,换成小驼峰命名法
		 2、唯一的缺陷:获取的时候,代老湿现在只交了你操作内联样式,目前不能获取样式表中的样式

绑定事件

1、单个元素:elem.onclick=function(){
				//关键字this的指向->这个元素
			  }

2、多个元素:
	for(var i=0;i<elems.length;i++){
	     elems[i].onclick=function(){
			//关键字this的指定->当前元素:当前你触发事件的元素
		}}