JavaScript第一周复习

JavaScript第一天
JavaScript简介:简称JS,是一个运行在【游览器】的【解释性】【弱类型】【面向对象】脚本语言
  1. JavaScript由三部分组成:Ecmascript(JavaScript语法)+DOM(面向网页)+BOM(面向游览器)

  1. 游览器环境:

自带JavaScript解释器

  1. 解释型:在程序执行之前不需要检查代码,直接运行,遇到错误直接停止

  1. 弱类型:变量保存的数据是随意的,数据类型由数据来决定的

  1. 面向对象:一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物

  1. 数据类型:5种

数字               number

字符串           string

布尔               boolean

未定义           underfunded

空                  null

  1. JS的两种使用方式:

  1. 内嵌式

b.外部样式

  1. 输出方式3种:

  1. 控制台输出

  1. 页面输出

  1. 警告框输出

  1. 创建变量:变量常见后可以修改,可以反复使用

语法:var   变量名= 值;

命名规则:

  1. 不能随意命名

  1. 不能以数字开头

2.不能用关键字命名

3.建议用驼峰命名法或下划线命名法

  1. 命名尽量见明知意

  1. 变量名是name,不管你保存的是什么都会悄悄的转为一个字符串

  1. 变量可以只创建不赋值

  1. 多个变量简写

  1. 语法:var  变量名=值,变量名=值,...;

  1. 常量:创建后不能修改

  1. 生活中的常量:

  1. 如:一天24小时、一小时60分钟、1分钟60秒等

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

  1. 其余和变量一样

  1. 运算符

  1. 算数运算符:

  1. %        模,又称取余

  1. 作用:判断奇偶数

  1. - (减) *(乘) /(除)

  1. +运算符特殊,碰上字符串,左右两边都会会悄悄转换为字符串,他不再是+运算而是拼接

  1. 带有隐式转换

  1. 比较运算符:

  1. >  <  >=   <=  =  ==  !=  !==

  1. 带有隐式转换

  1. 常识:

  1. 数字 0~9<大写A~Z<小写a~z< 汉字

  1. 汉字第一个字是 一   Unicode号是4e00,ASCII是19968

  1. 汉字最后一个字是 龥  Unicode号是9fa5,ASCII是40869

  1. 赋值运算符:

  1. = +=  -=  *=  /=  %=

  1. = 将右边的值保存到左边

  1. 逻辑运算符:

  1. &&(与)   

  1. 条件全部满足结果为true

  1. 条件只要一个不满足结果为false

  1.   ||(或)

  1. 全部条件不满足结果为false

  1. 条件只要一个满足结果为true

  1.  !(非)

  1. 自增自减运算符:

  1. ++  固定每次+1

  1.  --   固定每次-1

  1. 例:a++和++a的区别

  1.     单独使用时都没有区别

  1.    参与表达式时返回值不同

  1.    a++返回的是新值

  1.    ++a返回的是旧值

  1. 位运算

  1. 左移:m<<n 翻译:m*2的n次方,读作m左移n位

  1. 右移:m>>n 翻译:m/2的n次方,读作m右移n位

JavaScript第二天
  1. 结构:3种

  1. 顺序结构

  1. 默认从上往下依次执行

  1. 分支结构

  1. 通过条件判断,选择部分代码执行

  1. 循环结构

  1. 通过条件判断,要不要重复执行代码某块

  1. 分支判断

  1. if(条件){

    操作;

}else{}

b.swith(条件){

     case 值;

      操作;

}

case:不带隐式转换

break:case后面可以加一个break

c.if  vs  switch

if

优点:可以做范围判断

缺点:执行效率慢,速度慢(做的是范围判断)

switch

优点:执行效率高,速度快(case做的不是范围查找,而是等值比较)

缺点:必须知道最后结果才能使用

  1. 三目运算:

  1. 简化分支

  1. 语法:条件1?操作1:条件2?操作2:默认操作;

  1. 默认操作不能省略,省略会报错

  1. 操作只能有一句话,多句话举荐使用switch和if

  1. 强制(显示)数据类型转换

  1. 转字符串:2种

  1. var str=x.toString();

  1. var str=String(x);

  1. 转数字:3种

  1. parseInt(str/num);

  1. parseFloat(str);

  1. Number(x);

  1. 转布尔

  1. 语法:Boolean(x);

  1. 只有6个为flase:0,“”,underfunded,NaN,null,flase;其余全部都为true

JavaScript第三天
  1. 循环结构:反复执行相同或相似的操作

循环三要素:

  1. 循环条件

  1. 循环体

  1. 循环变量

  1. 三种循环:

  1. while循环:

  1. 语法:

var 循环变量=值;

while(循环条件){

循环体;

循环变量变化;

}

break——退出整个循环;

continue——退出本次循环

  1. for循环:

  1. 语法:

for(var 循环变量=值;循环条件;循环变量变化){

循环体;

}

for(;;){}//死循环

  1. do...while循环:

  1. 语法:

var 循环变量=值;

do{

循环体;

循环变量变化;

}while(循环条件)

  1. Function基础:

  1. 概念:function叫函数也叫方法,先【预定义】好,以后可以【反复使用】的【代码段】

  1. 如何使用函数:

  1. 创建/定义/说明:

function函数名(){

函数体/代码段

}

注意:函数创建后不会立即执行,需要我们去调用函数

  1. 调用函数:2种

  1. 在JS内部写:函数名();

  1. 在HTML上面绑定事件:

<elem   οnclick="函数名()"></elem>——什么元素都可以绑定事件

  1. 如何使用函数

  1. 不希望打开页面立刻执行

  1. 希望用户来触发提升用户的体验感

  1. 每一个独立的功能都要封装一个函数

  1. 形参

  1. 概念:其实就是一个变量,不需要加var,而且还不需要赋值

  1. 语法:

function 函数名(形参,...){

函数体/代码段

}

ii.使用形参函数时,必须传入实参——实际参数,就是传过去的值

函数名(实参,...)

注意:传参时顺序不能乱,必须和形参一一对应,数量不能多和少

  1. 总结:

  1. 不带参数的函数用于执行一些固定操作

  1. 带参数的函数可以根据传入的参数不同,做一些略微调整

  1. 循环和函数都能反复执行,它们的区别在哪

  1. 循环:几乎是一瞬间完成

  1. 函数:需要调用后才会执行

JavaScript第四天
  1. 自定义函数

  1. 概念:需要先定义,以后可以反复使用的代码段

  1. 如何使用:

  1. 不希望打开立即执行,希望用户来触发

  1. 创建

  1. 【声明方式】创建函数

function 函数名(形参列表){

操作;

return;         //返回值/结果

}

  1. 【直接量】创建函数

var 函数名=function(形参列表){

操作;

return;         //返回值/结果

}

  1. 作用域

  1. 全局作用

  1. 全局变量和全局函数,在页面任何位置都可以使用

  1. 局部作用

  1. 局部变量和局部函数,在【当前函数调用时可以使用】

注意:优先使用局部变量,局部没有找全局,全局没有就会报错

  1. 声明提前

  1. 规则

在程序执行之前,将var声明的变量(轻)和function声明的函数(重)都会悄悄的集中定义在当前作用于的顶部,但赋值会留在原地

  1. 强调

  1. 声明创建方式的函数会完整的提前(第一种)

  1. 直接量方式创建的函数不会完整的提前,只会变量部分提前(第二种)

  1. 如何使用

  1. 变量名和函数名尽量不要重复

  1. 先创建后使用

  1. 重载

  1. 目的

减轻压力,记住一个方法就可以执行很多操作

  1. 解决

在【函数内部】自带arguments的对象(类似数组对象】不需要创建

  1. 固定套路

  1. 通过下标去获取某个实参——arguments【i】

  1. 通过length去获取传入的实参——arguments.length

  1. 数组的基础

  1. 创建数组:2种

  1. 直接两方式:

var arr=【数据1,...】

  1. 构造函数:

var arr=new Array(数据1,...)

  1. 获取数组

数组名【i】;

  1. 添加/替换

数组名【i】=新数据

如果下标没人则为添加,有人则为替换

  1. 三大限制

  1. 不限制元素类型

  1. 不限制元素长度

  1. 不限制下标越界

  1. 解决

  1. 语法:数组名.length

  1. 作用:获取到数组的长度,从1开始

f.固定套路

末尾添加元素:数组名【数组名.length】=新数据

获取数组倒数第n个元素:数组名【数组名.length-n】

缩容:数组名。length-=n

  1. 遍历数组

固定公式

for(var i=0;i<arr.length;i++){

arr[i];//当前元素

}

JavaScript第五天
  1. DOM:

Document Object Model:文档对象模型:专门用于操作HTML文档的,提供了一些方法

  1. DOM树概念:

  1. DOM将我们的HTML看作了是一个倒挂的树状结构,但是树根不是html标签,而是document的对象

  1. document对象:不需要我们程序员创建,由浏览器的js解释器自动创建,一个页面只有一个document树根

  1. 作用:

  1. 可以通过树根找到我们想要的任何一个DOM元素/节点/对象(属性和方法)

  1. DOM会将页面上的每个元素、属性、文本、注释等等都会被视为一个DOM元素/节点/对象

  1. 查找元素

  1. 直接通过HTML的特点去查找元素

  1. 通过ID 查找元素

var elem=document.getElementById("id值");

  1. 通过标签名查找元素

var elems=document/已经找到的父元素.getElementsByTagName("标签名");

  1. 通过class 查找元素

var elems=document/已经找到的父元素.getElementsByClassName("class名");

  1. 通过关系去获取元素:前提条件:必须先找到一个元素才可以使用关系

  父元素:elem.parentNode; - 单个元素

子元素:elem.children; - 集合

第一个子元素:elem.firstElementChild; - 单个元素

最后一个子元素:elem.lastElementChild; - 单个元素

前一个兄弟:elem.previousElementSibling; - 单个元素

后一个兄弟:elem.nextElementSibling; - 单个元素

为什么要通过关系去找元素呢?

不希望影响到别人,只希望影响到自己的关系网

  1. 操作元素

  1. 内容

  1. elem.innerHTML - 获取和设置开始标签到结束标签之间的内容,支持识别标签的

 获取:elem.innerHTML;

       设置:elem.innerHTML="新内容";

  1. elem.innerText - 获取和设置开始标签到结束标签之间的纯文本,不识别标签的

获取:elem.innerText;

设置:elem.innerText="新内容";

  1. input.value - 专门获取/设置input里的内容

获取:input.value;

设置:input.value="新内容";

  1. 属性

  1. 获取属性值:elem.getAttribute("属性名");

  1. 设置属性值:elem.setAttribute("属性名","属性值");

  1. 简化版

  1. 获取属性值:elem.属性名;

  1. 设置属性值:elem.属性名="属性值";

  1. 缺点

  1. class必须写为className - ES6(2015年)class变成了一个关键字

  1. 不能操作自定义属性

  1. 样式

  1. 使用样式的方式:3种

内联样式

   内部样式表

   外部样式表

  1. 绑定事件

a.elem.on事件名=function(){

操作;

}

b.关键字this - 这个

如果单个元素绑定事件,this->这个元素

如果多个元素绑定事件,this->当前触发事件元素

c.一切的获取,往往都是为了判断

d.一切的设置,可以说是添加也可以说是修改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值