forEach、for in、for、for of循环的区别
for循环---编程式
forEach循环---声明式(不关心如何实现)、不支持return
for in循环---key会变成字符串,包括私有属性也能打印出来
for of循环---(value of arr)支持return、不能遍历对象
JS,Jquery获取各种屏幕的宽度和高度
Javascript:
网页可见区域宽: document.body.clientWidth
网页可见区域高: document.body.clientHeight
网页可见区域宽: document.body.offsetWidth (包括边线的宽)
网页可见区域高: document.body.offsetHeight (包括边线的高)
网页正文全文宽: document.body.scrollWidth
网页正文全文高: document.body.scrollHeight
网页被卷去的高: document.body.scrollTop
网页被卷去的左: document.body.scrollLeft
网页正文部分上: window.screenTop
网页正文部分左: window.screenLeft
屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度: window.screen.availWidth
JQuery:
(window).height()); //浏览器当前窗口可视区域高度
alert((document.body).height());//浏览器当前窗口文档body的高度
alert($(document.body).outerHeight(true));//浏览器当前窗口文档body的总高度 包括border padding margin
alert((document).width());//浏览器当前窗口文档对象宽度
alert((document.body).outerWidth(true));//浏览器当前窗口文档body的总宽度 包括border padding margin
})
es6编译成es5
1、安装babel核心包
npm install babel-core --save-dev;
2、安装babel的解析器
npm install babel-loader --save-dev
3、解析es6的工具
npm install babel-preset-es2015 --save-dev
创建一个.babelrc 文件
{"presets":["es2015","stage-0"]}
解析es7语法的
npm install babel-preset-stage-0 --save-dev
解析样式
1) - css-loader将css解析成模块,将解析的内容插入到style标签内(style-loader)
npm install css-loader style-loader --save-dev
2) ## less,sass,stylus(预处理语言)
- less-loader less
- sass-loader
- stylus-loader
npm install less less-loader --save-dev
es6模块
es6的模块导入
import * as d from './a.js'
es6的模块导出
export let a = 100;
export let b = 200;
安装webpack(common.js)
1、初始化:npm. init -y
2、安装:npm.install webpack@3.8.1 --save-dev
3、起服务:yarn add webpack webpack-dev-server
4、babel-core 和babel-loader:中心包(什么都不会)
5、编译es6: babel-preset-es2015
6、编译es7:babel-preset-stage-0
7、解析react:babel-preset-react(需要安装react:yarn add react react-dom)
8、编译less:less-loader(记得安装less)
9、编译css:css-loader
10、编译style:style-loader
11、图片:file-loader和url-loader
12、html-webpack-plugin --dev
let HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
enter:'./src/index.js',//入口
output:{
filename:'build.js',//打包后的文件名字
path:require('path').resoolve('./dist')//给你个相对路径,还我个绝对路径
},
module:{
rules:[
{test:/\.js$/,use:'babel-loader',exclude:/node_modules/},//exclude排除
{test:/\.css$/,use:['style-loader','css-loader']},
{test:/\.less/,use:['style-loader','css-loader','less-loader']},
{test:/\.less/,use:['style-loader','css-loader','less-loader']},
{test:/\.(png|jpg|gif)/,use:['url-loader']}
]
},
plugins:[
new HtmlWebpackPlugin({
template:'./index.html'
})
]
};
有个index.html的模板,src的文件夹,里面有个index.js
1、package.json 修改script中的脚本
"scripts": {
"dev":"webpack-dev-server",
"start":"npm run dev",
"build":"webpack -p"
},
2、配置webpack.config.js
3、npm run build 或者(名字)dev
webpack
webpack-config.js
let path = require('path');//导入path模块,解析路径
let HtmlWebpackPlugins = require("html-webpack-plugin");
//path.resolve('./dist')
module.exports={
// entry:'./src/main.js', 配置webpack入口的文件
entry:{main:'./src/main.js',
main1:'./src/main1.js'},//多入口文件
output:{//打包之后斍的出口
//filename:'build.js',生成文件的名字,随便写
filename:'[name].js',//name会去entry中属性名就是文件的名字
path:path.resolve('./dist') //path.resolve 解析出一个绝对路径;当运行webpack时候,自动创建一个dist文件夹,将生成js放在这个文件夹下;
},
module:{//用什么解析器
rules:[
{test:/\.js$/,use:'babel-loader',exclude:/node_modules/},// node_modules中js不需要进行es6到es5编译;排除node_modules
{test:/\.css$/,use:['style-loader','css-loader']},
{test:/\.less/,use:['style-loader','css-loader','less-loader']},
{test:/\.vue$/i,use:["vue-loader"]},
{test:/\.(png|jpg|gif)$/,use:'url-loader'}//file
]
},
plugins:[
new HtmlWebpackPlugins({
// html 的路径;
template:"./index.html"
})
]
};
管道符( | filters中的过滤方法(filters参数 1本项 2传))
reduce参数 prev next index item、
change事件与click事件的区别、
input min type v-model 后 checked没用
四种类数组转数组的方法
1、方法一、 声明一个空数组,通过遍历伪数组把它们重新添加到新的数组中
var aLi = document.querySelectorAll('li');
var arr = [];
for (var i = 0; i < aLi.length; i++) {
arr[arr.length] = aLi[i]
}
2、使用数组的slice()方法 它返回的是数组,使用call或者apply指向伪数组
var arr = Array.prototype.slice.call(aLi);
3、方法三 、使用原型继承
aLi.proto = Array.prototype;
4、ES6中数组的新方法 from()
function test(){
var arg = Array.from(arguments);
arg.push(5);
console.log(arg);//1,2,3,4,5
}
test(1,2,3,4);