JavaScript学习笔记(2)

函数

函数是一段可以反复调用的代码块

函数的声明

function命令:function命令声明的代码区块,就是一个函数。function命令后边是函数名,函数名后边是一对圆括号,里面是传入函数的参数。函数体放在大括号里面。

function print(s){
    console.log(s);
}

函数名的提升

js引擎将函数名视同变量名,所以采用function命令声明函数时,整个函数会像变量声名一样,被提升到代码头部

add();
function add(){}

函数参数

函数运行的时候,有时需要提供外部数据,不同的外部数据会得到不同的结果,这种外部数据就叫做参数

函数返回值

JS函数提供两个接口实现与外界的交互,其中参数作为入口,接收外界信息;返回值作为出口,把运算结果反馈给外界

温馨提示:return后边不能添加任何代码,因为不会执行

对象

对象是JS语言的核心概念,也是最重要的数据类型;对象就是一组“键值对”的集合,是一种无序的复合数据集合。对象的每一个键名又称为“属性”,他的”键值“可以是任何数据类型。如果一个属性的值为函数,通常把这个属性称为“方法”,它可以像函数那样调用

对象的读取方式:对象名.属性

如果属性的值还是一个对象,就形成了链式引用

math对象

Math是JS的原生对象,提供各种数学功能

Math.abs()方法返回参数值的绝对值

Math.max()和Math.min() 方法返回参数之中最大(小)值,如果参数为空,Math.min返回Infinity,Math.max返回-Infinity。

Math.floor向下取整,Math.ceil向上取整

Math.random()返回0-1之间的一个伪随机数,可能等于0,但一定小于1,任意范围的随机数生成函数如下:

function getRandomArbitrary(min,max){
    return Math.random() * (max - min) + min;
}

getRandomArbitrary(5,10)
Date对象

Date对象是JS原生的时间库。

Date.now()方法返回当前时间距离时间零点的毫秒数,相当于Unix时间戳乘以1000

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数

Date对象提供了一系列get方法,用来获取实例对象某个方面的值

DOM概述

DOM是JS操作网页的接口,全称为“文档对象模型”(Domcument Object Model)。他的作用是将网页转为一个JS对象,从而可以用脚本进行各种操作(比如对元素增删内容)。

浏览器会根据DOM模型,将结构化文档HTML解析成一系列的节点,再由这些节点组成一个树状结构(DOM Tree)。所有的节点和最终的树状结构,都有规范的对外接口。

DOM只是一个接口规范,可以用各种语言实现。所以严格地说,DOM不是JS语法的一部分,但是DOM操作是JS最常见的任务,离开DOM,JS就无法控制页面,另一方面,JS也是最常用于DOM操作的语言。

节点的七个类型

节点树

一个文档的所有节点,按照所在的层级,可以抽象成一种树状结构。这种树状结构就是DOM树。他有一个顶层节点,下一层都是顶层节点的子节点,然后子节点又有自己的子节点,就这样层层衍生出一个金字塔结构,倒过来就像一棵树。

Node.nodeType属性

不同节点的nodeType属性值和对应的常量如下:

Document对象_方法/获取元素

document.getElementsByTagName()

document.getElementsByTagName方法搜索HTML标签名,返回符合条件的元素。它的返回值是一个类似数组对象(HEMLCollection实例),可以实时反映HTML文档的变化。如果没有任何匹配的元素,就返回一个空集。

如果传入*,就可以返回文档中所有HTML元素

document.getElementsByClassName()

document.getElementsByClassName方法返回一个类似数组的对象(HTML Collection实例),包括了所有class名字符合指定条件的元素,元素的变化实时反映在返回结果中

由于class是保留字,所以JS一律使用className表示CSS的class,参数可以是多个class,他们之间使用空格分隔

document.getElementsByName()

document.getElementsByName方法用于选择拥有name属性的HTML元素(比如<form>、<radio>、<img>等),返回一个类似数组的对象(NodeList实例,因为name属性相同的元素可能不止一个)

document.getElementsById()
document.querySelector()

接受一个CSS选择器作为参数,返回匹配该选择器的元素节点,如果有多个节点满足匹配条件,则返回第一个匹配的节点。如果没有发现匹配的节点,则返回null。

document.querySelectorAll()

与上边一个类似,区别是返回一个NodeList对象,包含所有匹配给定选择器的节点。

Document对象_方法/创建元素

document.createElement()

方法用来生成元素节点,并返回该节点

document.createTextNode()

用来生成文本节点(Text实例),并返回该节点。它的参数是文本节点的内容

document.createAttribute()

生成一个新的属性节点(Attr实例),并返回它

Element对象_属性

Element对象对应网页的HTML元素。每一个HTML元素,在DOM树上都会转化成一个Element节点对象(以下简称元素节点)

Element.id

属性返回指定元素的id属性,该属性可读写

Element.className

属性用来读写当前元素节点的class属性。他的值是一个字符串,每个class之间用空格分割

Element,classList

classList对象有下列方法:

Element.innerHTML

Element.innerHTML属性返回一个字符串,等同于该元素包含的所有HTML代码。该属性可读写,常用来设置某个节点的内容。他能改写所有元素节点的内容,包括<HTML>和<body>元素

//innerHTML和innerText的区别:
innerHTML可以识别标签;innerText会把标签识别成一个字符串

Element获取元素位置

属性描述
clientHeight获取元素高度padding部分,但是不包括border、margin
clientWidth获取元素宽度padding部分,但是不包括border、margin
scrollHeight元素总高度,它包括padding,但是不包括border、margin包括溢出的不可见内容
scrollWidth元素总宽度,它包括padding,但是不包括border、margin包括溢出的不可见内容
scrollLeft元素的水平滚动条向右滚动的像素数量
scrollTop元素的垂直滚动条向下滚动的像素数量
offsetHeight元素的CSS垂直高度(单位像素),包括元素本身的高度、padding和border
offsetWidth元素的CSS水平宽度(单位像素),包括元素本身的高度、padding和border
offsetLeft到定位父级左边界的间距
offsetTop到定位父级上边界的间距

CSS操作

HTML元素的style属性

操作CSS样式最简单的方法,就是使用网页元素节点的setAttribute方法直接操作网页元素的style属性

元素节点的style属性

cssTest属性

事件处理程序

1)

缺点:HTML和JS没有分开

2)

优势:HTML和JS是分离的

缺点:无法同时添加多个事件

3)

优点:事件不会被覆盖

缺点:写起来麻烦

事件类型之鼠标事件

 温馨提示:这些方法在使用的时候,除了DOM2级事件,都需要添加前缀on

Event事件对象

事件发生以后,会产生一个事件对象,作为参数传给监听函数。

Event对象属性

1、Event.Target:属性返回事件当前所在的节点

2、Event.type:属性返回一个字符串,表示事件类型。事件的类型是在生成事件的时候。该属性只读。

Event对象方法

1、Event.preventDafault():取消浏览器对当前事件的默认行为。 //阻止默认行为

2、Event.stopPropagation():阻止事件在DOM中继续传播,防止再触发定义在别的节点上的监听函数,但是不包括在当前节点上其他的事件监听函数

事件类型之键盘事件

主要有keydown、keypress、keyup三个事件

enter对象

keyCode:唯一标识

事件类型之表单事件

表单事件是使用表单元素及输入框元素可以监听的一系列事件

1.input事件

input事件当<input>、<select>、<textarea>的值发生变化时触发。对于复选框(<input type  = checkbox>)或单选框(<input type = radio>),用户改变选项时,也会触发这个事件。

input事件的一个特点,就是会连续触发,比如用户每按下一次按键,就会触发一次input事件。

2.select事件

select事件当在<input>、<textarea>里面选中文本时触发

3.Change事件

Change事件当<input>、<select>、<textarea>的值发生变化时触发。它与input事件的最大不同,就是不会连续触发,只有当全部修改完成时才会触发

4.reset事件
5.submit事件

4.5俩个事件发生在表单对象中

事件代理(事件委托)

父元素系统处理子元素事件;

由于事件会在冒泡阶段向上传播到父节点,因此可以把子节点的监听函数定义在父结点上,由父节点的监听函数统一处理多个子元素的事件。这种方法叫做事件的代理。

定时器

定时器之setTImeout()

JS提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成。他们向任务队列添加定时任务;

setTimeout函数用来指定某个函数或某段代码,在多少毫秒之后执行。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。

var timeId = setTimeout(func|code,delay);

温馨提示:如果回调函数是对象的方法,那么setTimeout使得方法内部的this关键字指向全局环境,而不是定义时所在的那个对象

定时器可以取消

var id = setTimeout(f,1000);
clearTimeout(id);
定时器之setInterval()

setInterval函数的用法与setTimeout完全一致,区别仅仅在于setInterval指定某个任务每隔一段时间就执行一次,也就是无限次的定时执行

防抖(debounce)

防抖严格算起来应该属于性能优化的知识,但实际上遇到的频率相当高,处理不当或者放任不管就容易引起浏览器卡死。

定义:对于短时间内连续触发的事件(上边的滚动事件),防抖的含义就是让某个时间期限(如上面的1000毫秒)内,事件处理函数只执行一次。

节流(throttle)

如果一直拖着滚动条进行滚动,那么会以xxms的时间间隔,持续输出当前位置和顶部的位置

  

命令行工具

命令行常用工具:

1.CMD命令行工具

2.PowerShell命令行工具

CMD命令行

选择盘符:盘符名称:

查看盘符及目录下边的文件与文件夹:dir

清空命令行信息:cls

进入文件或文件夹:cd 文件名

返回上一级目录:cd ../

快速补全文件名称:tab

创建文件夹:mkdir 文件夹名称

查看历史输入过的内容:上下按键

PowerShell

打开方式:

1.在开始位置搜索PowerShell打开

2.在对应目录按住shift + 右键,打开

ECMAScript 6 简介

ES6带来的新特性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值