美文网首页
js基础加强

js基础加强

作者: simplerandom | 来源:发表于2020-05-22 17:17 被阅读0次

定义类1

function My(name,age){
        this.name=name;
        this.age=age;
        this.method=function(a,b){
            alert(a+b);
        }
    }
    My.static=function(){
        confirm("My静态方法");
    }

调用

    new My().method(5,6);
    My.static();

定义类2

<script>
    // 定义类
    class Person {
        constructor(name) {
            this.name = name;
        }
        m1() {
            console.log("m1方法");
            console.log(this);
        }
    }
    // 定义对象共享方法
    Person.prototype.m2 = function () {
        console.log("所有对象共享m2方法");

    }
    var p1 = new Person("hu");
    var p2 = new Person("li");
    p1.m1();
    p1.m2();
    // m1方法this对象指向改成p2
    p1.m1.call(p2)

</script>

this指向修改

    var arr = [22, 44, 88, 33];
    // 指定this指向并调用方法,arr必须为数组
    var max = Math.max.apply(null, arr);
    console.log(max);
    // 改变this指向arr,返回改变this指向的新方法,但不调用原来方法
    function bi() {
        console.log(this);

    }

    var max = bi.bind(arr);
    max();

剩余参数

// 定义剩余参数...args,one=1
    var arr = [12, 45, 66];
    function name(one, ...args) {
        args.forEach((i) => {
            console.log(i);
        }
        )
    }
    name(1, 55, 5454, 878);

伪数组转真数组

// 定义arr转为12, 45, 66,...arr=12,45,66
    var arr = [12, 45, 66];
    console.log(...arr);
    // divs伪数组转真数组
    var divs = document.querySelectorAll("input");
    console.log(divs);
    arr.push(...divs);
    console.log(arr);
  // 伪数组所有元素*100后生成新的数组
    var likeArr = {
        "0": 1, "1": 2, "length": 2
    }
    var arr = Array.from(likeArr, i => i * 100);
    console.log(arr);

数组相关

 // 查找对象数组中第一个id为12的对象
    var likeArr = [{
        id: 13, name: "hello"
    }, {
        id: 12, name: "hello"
    }]
    var obj = likeArr.find(item => item.id == 12);
    console.log(obj);
    // 查找对象数组中第一个>67的元素的索引
    var arr = [8, 68, 88]
    var index = arr.findIndex(i => { return i > 67 });
    console.log(index);
    // arr是否包含68
    var a = arr.includes(68);
    console.log(a);

模板字符串定义

// 模板字符串${}可以引用变量
    var likeArr = [{
        id: 13, name: "hello"
    }, {
        id: 12, name: "hello"
    }]
    let s = `这是对象${likeArr[0].id}`;
    console.log(s);
// 字符串重复100次返回新串
    var s = s.repeat(100);
    console.log(s);

set集合去重

// set集合去重
    var arr = [1, 5, 5, 8, 99, 99];
    var set = new Set(arr);
    console.log(set);
    console.log(set.size);

    set.forEach(i => { console.log(i); }
    )

Object属性定义

var obj = { "one": 12, "two": 13 };
Object.defineProperty(obj, "sum", {
    // 该属性可重新定义
    configurable: true,
    // 该属性可枚举
    // enumerable:true,
    // 该属性value可以修改
    // writable:true,
    set: function (value) {
        this.one = value - 2;
        this.two = value - 3;

    },
    get: function () {
        return this.one + this.two;

    }

})
// sum修改会调用set方法
obj.sum = 12;
console.log(obj.one);
obj.one = 0;
// 获得sum值会调用get方法
console.log(obj.sum);

构建内存中的document

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
</body>
<script>
    
    var ul = document.querySelector("ul");
    var frag = document.createDocumentFragment();
    let child;
    // 一个node只能有一个爹
    while (child = ul.firstChild) {
        frag.appendChild(child);
    }
    Array.from(frag.childNodes).forEach(i => {
        if (i.nodeType === 1) {
            i.textContent = "hello"
        }
    })
    ul.appendChild(frag)



</script>

</html>

相关文章

  • js基础加强

    定义类1 调用 定义类2 this指向修改 剩余参数 伪数组转真数组 数组相关 模板字符串定义 set集合去重 O...

  • 大厂面试TS(上)

    一、TS面试基础知识 1、什么是TS? 概念:ts 是 js 的超集,即在原有的js语法基础上,添加强类型并切换为...

  • 基础加强

    Junit单元测试: 反射:框架设计的灵魂 注解:

  • React-Native 随笔

    学习基础: js的基础知识, rect.js基础 JSX语法基础 FlexBox布局 安装 安装node.js下载...

  • 最新web前端相关课程学习链接

    js基础篇 js进阶篇 js高级篇 vue基础篇 vue高级篇 react基础 react高级 Nodejs基础 ...

  • 009——基础加强

    检测变量 打印变量 类型转换 销毁变量 函数 时间戳函数 读取文件夹 数组 static 类

  • php基础加强

    php四种标识符 标准标示符 短标签风格 script风格 asp风格 HTML和PHP的混合模式 php的代码是...

  • 加强基础练习

    赵老师新教育知行合一678: 宜阳县董王庄乡赵坡小学教学点 抓住核心素养的训练方法,有效,而且有明显的效果。 但是...

  • web前端 -- Day23 js高级

    js基础 JavaScript简称:JS JS分三个部分: ECMAScript标准---基础的语法 DOM D...

  • 前端JavaScript面试技巧

    1-1 课程概述 要做什么?——讲解前端 JS 基础面试题 哪些部分?——JS 基础,JS-WEB-API,JS ...

网友评论

      本文标题:js基础加强

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