首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS事件,你真的懂吗(捕获,冒泡)?

    说到js事件大家肯定都知道,那么今天讲一点大家不知道的(假设大家不知道?)。 所有的js事件都会分为两个阶段捕获和冒泡。...true表示监听事件的捕获阶段,false表示监听事件的冒泡阶段。 返回值 没有返回值 示例: <!...其次是inner捕获阶段 然后是inner冒泡阶段 最后是outer冒泡阶段 由此我们可以看到,事件触发的时候实际上都是有捕获和冒泡阶段的,并且捕获阶段会从最外层的父级元素开始捕获,一直捕获到最后触发事件的那个元素点才会停止...并且事件的触发是先捕获,在冒泡。 阻止事件冒泡 事件的冒泡会让我们实现某些功能的时候产生阻碍,那么我们怎么怎么阻止事件的冒泡呢,这个时候就会用到一个方法。...我们在使用多数情况下只使用冒泡监听。例如一条购物车信息,在这条信息,右下角有一个删除按钮。点击这条消息可查看详情,点击删除按钮可将此商品移除。

    2.4K20

    JS常见的报错及异常捕获

    在开发,有时,我们花了几个小时写的Js 代码,在游览器调试一看,控制台一堆红,瞬间一万头草泥马奔腾而来。...至此,本文主要记录Js 常见的一些错误类型,以及常见的报错信息,分析其报错原因,并给予处理方法。并且将介绍几种捕获异常的方法。 注:本文使用的谷歌游览器验证,不同的游览器,报错可能会不一样。...} ---- SyntaxError: Invalid or unexpected token 含义:捕获无效或意外的标记 为什么报错?...代码某些地方的括号或引号不匹配缺失,缺少()、[]、{}等。...createXHR('http://192.168.10:8080') 异常调试及捕获 ---- try/catch,Js处理异常的一种模式,try用于可能会发生错误的代码,catch对错误的处理

    5.8K30

    PHP正则捕获组与非捕获

    今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP也是可行的...array &$match,它是一个数组,&表示匹配出来的结果会被写入$match。...,捕获组是正则表达示以()括起来的部分,每一对()是一个捕获组。...按图中的匹配模式匹配时,捕获组的123号分别是红绿蓝。 捕获组的忽略与命名 我们还可以阻止PHP为匹配组的编号:在匹配组模式前加  ?: $mode = '/a=(\d+)b=(?...非捕获组的用法: 为什么称为非捕获组呢?那是因为它们有捕获组的特性,在匹配模式的(),但是匹配时,PHP不会为它们编组,它们只会影响匹配结果,并不作为结果输出。 /d(?

    2K90

    python的异常捕获

    对于代码可能的异常进行处理,可以增加程序的健壮性。在python,通过try..except语句进行异常捕获,基本用法如下 >>> def calc(a, b): ......用except捕获对应的异常,except语句可以有多条,对应多个不同类型的异常,当try的某条语句跑出异常之后,程序就会根据异常类型,执行对应的except语句 记住所有的异常类型基本是不可能的,在实际开发...,往往是根据经验,先设定几个可能的异常类型,当遇到超出范围的异常时,在修改代码,捕获对应的异常。...try语句有两个可选的语句 else finally else语句只有当try的代码没有抛出异常时,才会执行; finally语句在try语句正常执行或者异常被处理之后就会执行,示例如下 >>> def...most recent call last): File "", line 1, in NameError: name 'a' is not defined 在实际开发

    1.9K30

    JS】asyncawait异常捕获,这样做才完美

    前言缘由JSasync/await异步调用,只能通过try-catch吗?你想听的故事:作为一个合格的全栈搬砖工,那必须文武双全,前后必备。...,而且要捕获的漂亮主要目标实现重点async/await异常捕获方法正文目标解析async/await异常捕获方法方法一:try-catch任何异步调用全部一把嗦,全部套上try-catch壳还是以上述内容为案例...插件库await-to-js是什么await-to-js 是一个辅助开发者处理异步错误的库await-to-js怎么下# npm安装npm i await-to-js --save# yarn安装yarn...catch组装err, undefined 错误信息,数组第一项是异常信息为err,第二项数据为null总结本文通过async/await为切入点,介绍三种异步调用处理异常的方法:分别是try-catch...、promise处理、await-to-js插件库处理。

    11510

    关于 Block 捕获 self 的分析

    , #12 sub sp, #60 add r2, sp, #48 str r0, [sp, #56] str r1, [sp, #52] ARM汇编有规定第一个参数会放入r0,...bl _objc_retainBlock block在创建的时候一开始是放在栈上的,调用了最后的_objc_retainBlock后才会拷贝到堆上,block本质就是一个结构体,布局如下图,当需要捕获外部变量的时候会把捕获的变量放到结构体内...,总之这里关键就是要看是否有将self强引用并捕获到block内,我们首先要先找到存放block指针的地方 ?...objc_storeStrong(var_18, 0x0); return rax; } 可以看到不同于重写的C++方法,这里加不加self会导致不同的赋值方式,不加self的情况会使用block持有的...至此可以确定在block重定义了self的情况下_qbosstraceInfo和self->_qbosstraceInfo不等同,前者会导致blcok强持有外部的self。

    87950

    关于 Block 捕获 self 的分析

    两者如果等同的话block应该只捕获外部的weak_self才对,但实际运行结果又与假设的不符,看来只能分析具体的实现了 重写成C++代码 下面是仿照qz_strongify写法的demo代码 - (void..., #12 sub sp, #60 add r2, sp, #48 str r0, [sp, #56] str r1, [sp, #52] ARM汇编有规定第一个参数会放入r0,...bl _objc_retainBlock block在创建的时候一开始是放在栈上的,调用了最后的_objc_retainBlock后才会拷贝到堆上,block本质就是一个结构体,布局如下图,当需要捕获外部变量的时候会把捕获的变量放到结构体内...objc_storeStrong(var_18, 0x0); return rax; } 可以看到不同于重写的C++方法,这里加不加self会导致不同的赋值方式,不加self的情况会使用block持有的...至此可以确定在block重定义了self的情况下_qbosstraceInfo和self->_qbosstraceInfo不等同,前者会导致blcok强持有外部的self。

    1.5K21
    领券