碎知识

作者: 萌妹撒 | 来源:发表于2018-11-19 11:16 被阅读0次

    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:

    (document).ready(function(){ alert((window).height()); //浏览器当前窗口可视区域高度
    alert((document).height()); //浏览器当前窗口文档的高度 alert((document.body).height());//浏览器当前窗口文档body的高度
    alert($(document.body).outerHeight(true));//浏览器当前窗口文档body的总高度 包括border padding margin

    alert((window).width()); //浏览器当前窗口可视区域宽度 alert((document).width());//浏览器当前窗口文档对象宽度
    alert((document.body).width());//浏览器当前窗口文档body的宽度 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"
            })
        ]
    };
    
    image.png

    管道符( | 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);
    

    相关文章

      网友评论

          本文标题:碎知识

          本文链接:https://www.haomeiwen.com/subject/rkjofqtx.html