2023 12.17笔记

 1.addEventListener 的第三个参数      true:捕获      由大到小

                                                             false:默认---冒泡    由小到大

     阻止捕获和冒泡   e.stopPropagation()  e是function的形参

2.事件委托  其中的target

 <ul></ul>
 <script>
        let ul = document.querySelector("ul")
        ul.addEventListener("click", function (e) {
            // console.log(e)
            e.target.style.color = "pink"

        })

    </script>

3.事件移除

btn.addEventListener("click", fn)

btn.removeEventListener("click", fn)  以此就可以移除上面的那个

4bom

bom:浏览器对象模型  核心就是window

全局作用域的变量和函数会默认的放到window

5.window的常见事件

  load加载事件 等所有的dom加载之后执行       这样位置就不成问题了 

  window.addEventListener("load", function () {})

 addEventListener全部会依次执行      .onload则是相同的只执行第一个

 DOMContebtLoaded:z当dom加载结束后完成(不会等待样式表、图片)

 window.addEventListener("DOMContentLoaded", function () {})

innerWidth:返回当前屏幕的尺寸

 window.addEventListener("load", function () {
            let div = document.querySelector("div")
            window.addEventListener("resize", function () {
                if (window.innerWidth <= 800) {
                    div.style.display = "none"

                }

            })

        })

6.js执行的机制

js单线程 同步:前一段代码执行完毕,下一段代码才能够开始

              异步:做一件事情的同时去干别的事情

js的执行机制:同步任务:放到主线程进行执行,形成执行栈

                        异步任务:放到任务队列中 不同事件 资源加载 定时器

7.location

 url      获取或者设置url 通讯协议://主机(域名)[端口号]/路径[?参数]#片段

location.href获取uel

location.search获取全部参数

location.assign("https://www.baidu.com")跳转

location.replace("https://www.baidu.com")改变

location.reload()

location.href

获取url

ocation.search("https://www.baidu.com")获取全部参数
location.replace("https://www.baidu.com")改变
location.assign跳转
location.reload()强制刷新

8.navigator

console.dir(navigator.userAgent)  获取浏览器的相关信息

navigator    接口表示用户代理的状态和标识。它允许脚本查询它和注册自己进行一些活动

9.history

history.forward() 此异步方法转到浏览器会话历史的下一页,与用户单击浏览器                                                           的 Forward 按钮的行为相同。等价于 history.go(1)
history.back() 此异步方法转到浏览器会话历史的上一页,与用户单击浏览器                                                          的 Back 按钮的行为相同。等价于 history.go(-1)

10.client

     element.clientWidth(不包含边框)        该属性包括内边距(padding),但不包括边框                                                                             (border)、外边距(margin)和垂直滚动条(如果在)

     Top Left类似于上面

      element.offsetWidth       返回一个元素的布局宽度。

11.scroll                                       

element.scroll()   是用于在给定的元素中滚动到某个特定坐标的 Element 接口。
element.scrollWidth 这个只读属性是元素内容宽度的一种度量,包括由于 overflow 溢出而在屏幕上不可见的内容。
element.scrollHeight 只读属性是一个元素内容高度的度内容。量,包括由于溢出导致的视图中不可见
pelementscrollTop属性可以获取或设置一个元素的内容垂直滚动的像素

12.构造函数

<body>
    <script>
        // 1|{}
        // 2。Object
        // 3、构造函数  
        // let name1 = {
        //     uname: "zhangsan",
        //     age: 21,
        //     sing: function () {
        //         console.log("唱歌")
        //     }
        // }
        // let name2 = {
        //     uname: "zhangsan",
        //     age: 21,
        //     sing: function () {
        //         console.log("唱歌")
        //     }
        // }


        function Person(uname, age) {
            this.uname = uname
            this.age = age
            // this.sing = function () {
            //     console.log("sing~~~")
            // }
        }
        // 原型:构造函数通过原型分配的函数能够被所有的实例化对象共享
        // 每一个构造函数都存在一个属性叫做prototype,会指向另外一个对象,因此成为原型对象

        // 把不变的方法,直接定义在prototype上,让所有的实例化对象共享

        // Person.prototype.sing = function () {
        //     console.log("66667777")

        // }
        // Person.prototype.dance = function () {
        //     console.log("dance")

        // }

        // console.dir(Person)



        // 原型覆盖:constructor会丢失,一定要手动追加
        Person.prototype = {
            constructor: Person,

            sing: function () {
                console.log("sing~~~")
            },
            dance: function () {
                console.log("dance")
            }

        }






        let obj1 = new Person("zhangsan", 22)
        // console.log(obj1)
        // obj1.sing()
        // console.log("obj1的对象原型指向:")
        // console.log(obj1.__proto__)
        // console.log(obj1.constructor
        // )

        // 实例对象中,存在对象原型__proto__,指向构造函数的原型对象
        console.log(obj1.__proto__)
        console.log(obj1 instanceof Person)



        // let obj2 = new Person("lisi", 22)
        // console.log(obj2) 
        // obj2.sing()

        // console.log(obj1.sing === obj2.sing)

        let arr = new Array()
        // arr.push()
        console.dir(Array)



    </script>

</body>

object.prototype.constructor         数据属性返回一个引用,指向创建该实例对象的构造函数。注                                                         

jkincoulijiayinwoainijin意,此属性的值是对函数本身的引用,而不是一个包含函数名称                                                      + 的字符串。

13. 在·构造函数的继承

<body>
    <script>
        // function Father() {
        //     this.uname = "zhangsan"
        // }
        // function Son() {
        //     this.age = 21
        // }

        // Son.prototype = new Father()
        // let son1 = new Son()

        // console.log(son1.uname)



        // function Father() {
        //     this.uname = "father"
        // }
        // Father.prototype.getName = function () {
        //     return this.name
        // }


        // function Son() {
        //     Father.call(this)
        //     this.type = "son"
        // }

        // let son = new Son()
        // console.log(son)

        var A = {
            print: function () {
                console.log('hello');
            }
        }

        // 实例对象
        var B = Object.create(A)
        console.log(B)


    </script>

</body>

function.prototype.call()        会以给定的 this 值和逐个提供的参数调用该函数。

14.this的指向  

<script>
        // 1、全局作用域中this ,指向window
        window.console.log(this)

        // 2、函数调用中的this
        function fn() {
            console.log(this)
        }
        window.fn()


        // window.setTimeout("alert(this)", 1000)
        // 3、对象中的this,默认指向对象本身
        let obj = {
            fn: () => {
                console.log(this)
            }
        }
        obj.fn()

        // 箭头函数是没有this的概念的,父作用域
        // 4、构造函数  :指向实例化对象‘
        // apply()\call()\bind()改变this的指向
        const obj1 = { name: "zhangsan" }
        function Person() {
            // console.log(this)
            console.log(this.name)
        }

        // Person.apply(obj1)
        // Person.call(obj1)
        // console.log(Person.bind(obj))
        Person.bind(obj1)()


        // 5、事件中的this ,指向事件源








    </script>


</body>
1、全局作用域中this ,指向window
2、函数调用中的this指向window,定时器之类也是如此
3、对象中的this,默认指向对象本身
4.箭头函数是没有this的概念的,作用在父作用域
5、构造函数 :指向实例化对象‘
6.apply()\call() 改变函数对象   bind()改变后返回一个新的值     改变this的指向
7、事件中的this ,指向事件源

15.正则表达式             

<body>
    <script>
        // 1、通过构造函数创建
        // let reg = new RegExp("格式字符串",[修饰符])

        let reg = new RegExp("aaa")
        let str = "nanhang"
        console.log(reg.test(str))
        console.log(str.match(reg))

        // 2、字面量
        // /格式字符串/修饰符
        let reg1 = /a/
        console.log(str.match(reg1))



    </script>
</body>

</html>

       修饰符可写可不写 ,console.log返回true   false         

16.正则格式字符串                                                                                                                              

<body>
    <script>
        // 普通字符
        // 特殊字符
        // 元字符
        // .:匹配非换行符外的任意字符      \s    \S  \d:匹配数字  \D  \w:数字、字母、下划线  \W     \
        let str1 = "nanhangjincheng"
        console.log(str1.match(/./))
        // console.log(str1.match(/\d/))
        //  限定符
        // *0~n
        console.log(str1.match(/.*/))
        // + 1~n
        console.log(str1.match(/.+/))

        // ?  0~1
        console.log(str1.match(/a?/))
        // {n}  重复n次
        console.log("aaa2119554644cdcdc".match(/\d{9}/))
        // {n,} >=n
        console.log("aaa21195111".match(/\d{5,}/))
        // {m,n}至少出现m次,至多出现n次
        console.log("aaa2119554644".match(/\d{9,12}/))
        // 便边界符  ^表示开头   $表示结尾
        console.log("2119554644".match(/^\d{9,}\d$/))


        // 特殊的符号
        // let a = "<strong>hello</strong>"
        // let reg3 = /<[a-z]+>[a-z]+<\/[a-z]+>/
        // console.log(a.match(reg3))


        // []
        console.log("2119554644".match(/[0-9a-zA-Z_]+/))

        console.log("2119554644".match(/[^2]+/))

        // |
        console.log("2119554644".match(/(1|9)+/))

        // i\g

    </script>

</body>

                 

     string.prototype.match()                方法检索字符串与正则表达式进行匹配的结果                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    v

  • 30
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
node-v12.17.0-x64.msi是Node.js的安装程序文件。Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,它允许开发人员在服务器端运行JavaScript代码。这个特性使得开发人员能够使用一种语言来构建整个应用程序,从前端到后端。Node.js在Web开发、网络应用、IoT设备和命令行工具等领域都有广泛的应用。 node-v12.17.0-x64.msi是适用于Windows操作系统的Node.js安装程序。其中的"v12.17.0"代表Node.js的版本号,"x64"表示适用于64位的Windows操作系统。这个.msi文件是一种Windows安装程序,点击后会引导用户一步一步地安装Node.js到用户的计算机中。 安装Node.js可以为开发人员提供一些重要的功能。首先,它允许开发人员在服务器端运行JavaScript代码,从而实现更高效和更快速的服务器应用程序。其次,Node.js具有非阻塞I/O模型,这意味着它能够处理大量并发请求而不降低性能。此外,Node.js拥有一个庞大的模块库,开发人员可以使用这些模块来简化开发过程,加快开发速度。最后,Node.js在社区中具有广泛的支持和活跃的开发者社区,这意味着开发人员可以轻松地获取到解决问题的资源和帮助。 总之,node-v12.17.0-x64.msi是Node.js在Windows操作系统上的安装程序文件,通过安装Node.js,开发人员可以利用JavaScript语言来构建高效、快速和可扩展的服务器端应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值