学习javaScript的一周-初始js

69 阅读2分钟

第一天,简单了解js

1.js:是一个运行在浏览器端的解释性弱类型面向对象的脚本语言;由ECMAScript核心语法+BOM浏览器+DOM网页 三部分组成。

2.通常用到的输出方式是console。log() 它会显示到控制台,不会影响到页面上

3.var 变量名=变量值 ; const 常量名=值;

4.原始&&基本的值类型有五个:数字,string字符串,boolean布尔值(取值为true1,false0),null(释放变量),undefin 查看数据类型:typeof(变量)

5.运算符: 1.算术运算符+-/ %
1:其中加号会因为碰到字符串而左右变成拼接的方式 2:%:叫做取余,俗称模,两个数相除,不取商,而是取除不尽的余数作用: 1、任意数%2 - 判断奇偶数 2、取出某个数字的后n位

2.比较&&关系运算符:< > <= >= == != === !== 1.结果是一个布尔值 2.默认左右两边会转换为数字在比大小 3.数字0-9<大写A-Z<小写a-z<汉字

3.、*赋值运算符:= += -= *= /= %= 1、=:赋值:将=右边的东西,保存到=左边的变量名之中 2、后面5个可以理解为是一种升级写法,运算后再保存回变量本身,举例: i=i+1 ==> i+=1;

4.自增自减运算符:++ 。 -- i++ ===> i+=1 ===> i=i+1

自增:固定的每次只能+1;累加:+=每次加几由程序员自己决定

鄙视题: 前++ 和 后++的区别? 如果单独使用,前++和后++,没有任何区别。 但是如果参与了其他表达式,变量始终都会+1,但是前++和后++的【返回结果】不同 前++,返回的是加了过后的新值 后++,返回的是加了之前的旧值

第二天:分支结构 : if分支 switch分支

1.分支结构: 1.if...else.. 语法是: if(条件){操作}; else if(条件){操作}; else if(条件){操作}; else(条件){操作}; 多个条件多件事,满足谁就做谁; 例子:if(age>=18){consolo.log(“去玩”);} else{consolo.log(“做作业”);}

   尽量少用if。。else,因为做范围查找执行效率慢,要多用switch和三目运算
         

2. switch...case..分支: 语法是:switch(变量/表达式){ case (值1):操作1;break; case (值2):操作2;break; case (值3):操作3;break;default;}

    特殊点:默认只要一个case满足,所有的后续操作会全部做完(比如满足了操作2,后面会执行操作3,但是操作1不会执行。想要结束就在想结束的地方加一个break
    必须要知道结果才能使用
     \n代表换行  
    

3.三目运算:简化分支 语法是: 条件?操作1:默认操作; === if。。else。 条件1?操作1 :条件2?操作2:默认操作===if。。else。 if..else 例子:consol.log(age>=18?“去玩”:“做作业”;

   if eles写的越多,三目可以简化越多
       
   操作只有一句话使用三目运算,多句话用switch或者if
   

day3 循环结构:

1.while循环: 语法是:var循环变量=几; while(循环条件){循环体;循环变量逼变换;} 例子:var i=1; while(i<=1000){conson.log("hello"); 但上面的i永远等于是1,所以这就是一个死循环,所以要让i动起来, 设置一个i++ ,每次i会加一,直到加到1000会停止,循环就结束 break退出整个循环,搭配死循环用的;continue退出本次循环,下一次依然执行

2.for循环 :比while更加简洁 语法是:for(var循环变量=几; 循环条件;循环变量变化){循环体;} 例子1:for(var i=1;sum=0;i<=1000;i++){ consol.log(i+"hello")} 例子2:for(var i=1;sum=0;i<=1000;i++){ sum+=i} consol.log(sum);
例子3:for(var i=1;sum=0;i<=1000;i++){ if(i%2==0){sum+=i}} consol.log(sum);

day4 创建函数,调用函数

1.创建函数:2种方式 第一种:声明方式。 function函数名(形参列表){操作;return返回值/结果;} 第二种:直接量方式。 var 函数名=function(形参列表){操作;return返回值/结果;}

2.调用 var 接住返回的结果=函数名(实参列表)

3.作用域:两种 第一种:全局作用域:全局变量/全局函数:在页面任何为孩子都可以使用 第二种:函数作用域:局部变量/局部作用域:优先使用局部的,局部没有找全局要,全局没有就会报错

4.声明提前: 只会出现在笔试题, 规则是在程序执行之前,将var声明的变量(轻)和function声明(重)会悄悄的定义到作用域的顶部,但是赋值留在原地。

5.数组的基础 1、创建数组:2种 1、*直接量方式:var arr=[];//空数组 var arr=[数据1,...]; 2、构造函数方式:var arr=new Array();//空数组 var arr=new Array(数据1,...);

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

day5 DOM

document object model:文档对象模型,专门用于操作html文档的,提供了一些属性和方法

1.查找元素: 1、通过 ID 查找元素: var elem=document.getElementById("id值"); 2、通过 标签名 查找元素: var elems=document/已经找到的父元素.getElementsByTagName("标签名"); 3、*通过 class 查找元素: var elems=document/已经找到的父元素.getElementsByClassName("class名");

2、*通过关系去获取元素:前提条件:必须先找到一个元素才可以使用关系 父元素:elem.parentNode; - 单个元素 子元素:elem.children; - 集合 第一个子元素:elem.firstElementChild; - 单个元素 最后一个子元素:elem.lastElementChild; - 单个元素 前一个兄弟:elem.previousElementSibling;-单个元素 后一个兄弟:elem.nextElementSibling; - 单个元素

3.操作元素 :三方面 1. 通过内容操作: 获取:elem.innerHTML(可以识别标签)/TEXT; 设置:elem.innerHTML="新内容"; 2.通过属性操作 获取属性值:elem.getAttribute("属性名"); 设置属性值:elem.setAttribute("属性名","属性值"); 3.通过样式操作 获取样式:elem.style.css属性名; 设置样式:elem.style.css属性名="css属性值";

4.、绑定事件: elem.on事件名=function(){操作; 关键字this - 这个 如果单个元素绑定事件,this->这个元素 如果多个元素绑定事件,this->当前触发事件元素}