js复习
1.js中没有方法重载
2.创建对象
var obj = new Object();
var obj = {};
3.错误处理
try{
}catch{
}
4.js事件
什么是句柄。
句柄(handle),有多种意义,第一种解释:句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。 [1] 第二种解释:整个Windows编程的基础
一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不在I/O文件中,它是毫无用处的。 句柄是Windows用来标志应用程序中建立的或是适用的对象的唯一整数,Windows大量使用了句柄来标识对象。
响应方式
1.在标签事件属性中编码
结构与行为耦合
无法编写大量的js代码
2.动态绑定事件
找到元素->为元素相应地事件属性赋值一个方法->当事件发生以后,浏览器就会自动调用
jquery复习
使用$()方法传入function相当于window.οnlοad=function(){}
jquery的核心函数$:
$=jQuery
1.传入参数为函数时,
$(function(){})
文档加载完成后执行,相当于window.onload(?)
2.传入参数为html字符串
根据字符串创建元素节点对象
3.传入参数为选择器字符串时,
根据选择器查找出元素节点对象
4.传入参数为dom对象时,
将dom对象包装为jquery对象返回
jquery任何找到的元素都被包装成为数组,里面是dom对象
dom树
浏览器提供的
元素节点:html标签
属性节点:元素的属性
文本节点:html标签中的文本内容
节点的三个属性:
nodeName nodeType(返回整数) nodeValue
虚拟dom
开发轮子的程序员提供的,模拟dom树,实现页面的高效更新
使用js对象来模拟dom tree
diff算法
Diff算法的作用是用来计算出 Virtual DOM 中被改变的部分,然后针对该部分进行原生DOM操作,而不用重新渲染整个页面。
Diff算法有三大策略:
Tree Diff
Component Diff
Element Diff
webpack打包
配置
配置:
module.exports={
mode:'debelopment',//development production
}
//向外暴露一个打包的配置对象;因为webpack是基于node构建的
//webpack 4.x中,约定大于配置,默认的打包路径就是src/index.js
//目的是为了减少配置文件的体积
//webpack cnpm i webpack webpack-cli -D安装即可
//webpack实时编译:cnpm i cnpm-dev-sercer -D
注意:
webpack-dev-server打包好的main.js在内存中,并没有放在磁盘上
html-webpack-plugin
在内存中生成首页,并自动把打包好的js注入
const path = require('path')
const HtmlWebPackPlugin = require('html-webpack-plugin')
//创建一个插件的实例对象
const htmlPlugin=new HtmlWebPackPlugin({
template:path.join(__dirname,'./src/index.html'),//源文件,
filename:'index.html'//生成的内存中首页的名称
})
module.exports={
mode:'debelopment',//development production
plugins:[
htmlPlugin
]
}
//向外暴露一个打包的配置对象;因为webpack是基于node构建的
//webpack 4.x中,约定大于配置,默认的打包路径就是src/index.js
//目的是为了减少配置文件的体积
//webpack cnpm i webpack webpack-cli -D安装即可
//webpack实时编译:cnpm i cnpm-dev-sercer -D
在项目中使用react
cnpm install react react-dom -S
·react:专门创建组件和虚拟dom
//导入两个包,并且接收的成员名称,必须这么写
import React from 'react'
import ReactDOM from 'react-dom'
//创建虚拟DOM元素
//参数1:创建的元素类型,字符串,表示元素的名称
//参数2:是一个对象或null,表示当前这个dom元素的属性
//参数3:子节点(包括其它虚拟DOM 获取文本子节点)
//参数n:其它子节点
//<h1 id="muh1" title="this is h1">这是一个h1</h1>
const myh1 = React.creatElement('h1',{id:'myh1',title:"this is a h1"},'这是一个h1')
const mydiv = React.creatElement('div',null,"这是一个div元素",myh1)
//渲染页面上的dom结构最好的方式就是写html
//使用reactdom把虚拟DOM渲染到页面上
//参数1:要渲染的虚拟dom元素
//参数2:指定页面上一个容器
ReactDOM.render(myh1,document.getElementById('app'))