首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【动画演示】:JS 作用域链不在

但是,getPersonInfo函数中不包含变量 city,它是怎么取到 city 值? 首先,JS 引擎为不同上下文设置内存空间。...我们有默认全局上下文(浏览器中window、Node 中global ),以及已经调用getPersonInfo函数本地上下文,每个上下文还有一个作用域链。...当我们试图访问getPersonInfo函数中变量时,JS引擎首先检查局部作用域链。 本地作用域链有一个name和age引用!name值是Sarah, age值是22。...为了找到变量city值,JS 引擎沿着作用域链向上查找,直到在外部作用域内为找到了一个city值,本地作用域有一个引用,在本例中是全局对象。...这里分抛出一个ReferenceError异常,因为 JS 在全局范围内找不到一个名为city变量引用,因为已处于顶部作用域,也没法向上作用域查找了。

30810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Js正则表达式

    JavaScript 中正则表达式(Regex)是用于在文本中匹配特定字符字符串模式。它们用于验证表单、解析字符串、替换文本等。...正则表达式在 JavaScript 中有许多用途:验证电子邮件:/^([a-z0-9_\.-]+)@([\da-z\.-]+)\....([a-z\.]{2,6})$/将字符串解析为标记:/\w+/g查找并替换文本:replace(/(hello)/g, 'hi')正则表达式有许多用途,这些只是其中一些示例!...学习正则表达式先决条件是了解一种编程语言,比如 JavaScript。下面是有关在 JavaScript 中学习并轻松理解正则表达式文章。...标志(flags)是修改正则表达式行为可选参数。常见标志有 g(全局匹配)和 i(大小写不敏感匹配)。希望这些翻译能够帮助您更好地理解 JavaScript 中正则表达式

    14810

    关于JS正则表达式

    原文来自我github 0.前言 本文主要介绍了捕获和非捕获概念,并举了一些例子,这些都是正则表达式js中进阶一些用法。...后面有彩蛋哦 1.捕获 1.1RegExp对象相关属性 一般用()括住就是捕获组,而且类似于算术中括号,从左到右,逐层去括号。....$3 //1 这个顺序,按左括号顺序来算,第几个(就表示第几个符号属性,一般从1开始,最多9 还有一些旧RegExp长属性名,在高级程序设计108页里面 于是,我们经常有一个这样需求,将一个这样子字符串转为数组...另外,简写的话还是有很多不兼容问题,最好写全称 1.2数字反向引用 有的人就问,用正则怎么匹配AABB类型词语?比如高高兴兴、亮晶晶这些。...jQuery作者正则,号称世界上最强选择器sizzle,就是强大正则做出来(晚点再更新sizzle解读)

    6.1K10

    最全js正则表达式用法大全_js正则表达式语法大全

    ),非常有用表达式 匹配Email地址正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 评注:表单验证时很实用 匹配网址URL正则表达式:[a-zA-z]...应该掌握基础知识   规则表达式知识可能是不少编程人员“常学常忘”知识之一。在这篇文章中,我们将假定你已经掌握了规则表达式用法,尤其是Perl 5中表达式用法。....在规则表达式方面的权威书籍是由杰弗里·弗雷德尔编写《掌握表达式》一书,对于希望深刻理解表达式读者,我们强烈建议阅读这本书。...打开x选项,表达式将会忽略注释和其中没有转义空格。   然后,取得表达式中定义编号清单。你当然可以显性地使用这些编号,在这里使用是编程方法。...基于过程和基于表达式方法比较   一般情况下,使用规则表达式用户可以分为以下二大类:第一类用户尽量不使用规则表达式,而是使用过程来执行一些需要重复操作;第二类用户则充分利用规则表达式处理引擎功能和威力

    4.7K20

    js正则表达式

    js正则表达式 目录 正则表达式定义及作用 字符串方法使用正则表达式 修饰符及模式 RegExp对象 实际用例 正则在线工具 正则表达式定义及作用 定义 使用单个字符串来描述、匹配一系列符合某个句法规则字符串搜索模式...语法 /正则表达式主体/修饰符(可选) 作用 文本搜索 文本替换 字符串方法使用正则表达式 search()方法 检索与正则表达式相匹配子字符串,并返回子串起始位置 代码实例 var...g执行全局匹配 m执行多行匹配 表达式 [abc]查找方括号之间任何字符 [0-9]查找任何从0至9数字 (x|y)查找任何以|分隔选项 元字符 \d查找数字 \s查找空白字符...匹配任何包含零个或一个n字符串 RegExp对象 RegExp对象是一个预定义了属性和方法正则表达式对象 test()方法 用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配文本...“e” 字符串中含有 “e”, 则实例中输出true exec()方法 用于检索字符串中正则表达式匹配, 返回一个对象,其中存放匹配结果, 如果未找到匹配,则返回值为 null 代码实例

    7.3K30

    js正则表达式(1)

    函数调用,传参 * 2.js内置对象,切割:split(),切割完后得用一个变量给存储起来 * 3.for循环遍历,遍历查找 * 4.找到对应字符串,第0个转化为大写,转化为大写函数...两者对比: 相同点:都是为达到同一个目的,将一个字符串转换为驼峰命名 不同点:普通正常方法,得利用循环以及js中内置对象提供字符串(split,substring,join等)方法对所要操作字符串进行操作...正则表达式:用来匹配和处理文本字符模式对象,在Ecmascript中RegExp类表示正则表达式,是正则表达式语言创建,是一种为解决以上等问题工具而造就一门规则,它有特殊语法和指令,String...,若匹配到了,就不会往后匹配了,具体示例验证,可以在线正则表达式测试 正则表达式中是区分字母大小写,my与MY是两个不同字符串,可以用修饰符i来强制匹配不区分大小写 字母大小写有区分 var str...以下是本篇提点概要 正则使用场景,两个最强大功能就是搜索和替换 什么是正则表达式,就是用一处理字符串文本规则,来匹配和处理文本字符模式对象 如何创建正则表达式,一种是new操作符,另一种就是字面量表示方法

    4.5K40

    js正则表达式(2)

    前言 紧接着上次js正则表达式(1),这一文搁在那很久了,本文为初学者学习笔记心得,适用我这种小白,并不是什么高大尚内容,您将在本文中看到,如何实现重复字符匹配,子表达式使用,嵌套以及replace...概念:对表达式进行分组和归类,也是更大表达式一部分,把一个表达式划分为一系列子表达式目的是为了把那些子表达式当做一个独立元素来使用 方式:子表达式必须用 (和 )括起来,注意,(左括号和右括号)是元字符...,多重嵌套子表达式可以构造出强大正则表达式,但是由于层层嵌套,会让正则表达式难以阅读和理解,但硬骨头始终是要啃,如果进行表达式拆分,每次只分析和理解一个子表达式,按照先内后外原则来进行拆分,而不是从第一个字符开始一个字符一个字符去尝试...,通过把4组数字取值范围限制在0~255之间,这个模式就做到了只匹配合法IP地止,不匹配非法Ip地止 小结: 子表达式非常强大,也非常灵活,它是把同一个表达式各个相关部分组合在一起从而构成强大匹配模式...三者比较 什么是子表达式(对表达式进行分组和归类,也是更大表达式一部分,把一个表达式划分为一系列子表达式目的是为了把那些子表达式当做一个独立元素来使用) 子表达式嵌套 replace()方法第二个参数特殊字符使用

    2.8K30

    js正则表达式梳理

    正则表达式简介 正则表达式(Regular Expression): 正则表达式是对字符串操作一种逻辑公式,就是用事先定义好一些特定字符、及这些特定字符租和,组成一个“规则字符串”,这个规则字符串用来表达对字符串一种过滤逻辑...正则表达式作用 给定字符串是否符合正则表达式过滤逻辑(匹配)。 可以通过正则表达式,从字符串中获取我们想要特定部分(提取)。 强大字符串替换能力(替换)。...正则表达式组成 普通字符 abc 中国 123 等 特殊字符(元字符、限定符、中括号):正则表达式中有特殊意义字符。 元字符 元字符就是在正则表达式中具有特殊含义字符。 元字符 说明 ....,即变成了惰性匹配 js中使用正则表达式 1//方式1: 语法: var 变量 = new RegExp("规则","修饰符") 2var reg = new RegExp("d","g") 3 4//...方式2: 语法:var 变量 = /正则表达式/ (推荐使用) 5var reg = /d/g; 相关正则方法 正则对象.test(字符串); 校验匹配正则子字符串,返回布尔值。

    5.2K10

    js 邮箱正则表达式_匹配邮箱正则表达式

    大家好,又见面了,我是你们朋友全栈君。 一个正则表达式就是由普通字符(a~z)以及特殊字符(称为元字符)组成文字模式。 该模式描述在查找文字主体时待匹配一个或多个字符串。...正则表达式作为一个模板,将某个字符模式与所搜索字符串进行匹配。 语法: / 匹配对象模式 / 其中,位于“/”定界符之间部分就是将要在目标对象中进行匹配模式。...用户只要把希望查找匹配对象模式内容放入“/”定界符之间即可。 例如,在字符串“abcd”中查找匹配模式bc。代码如下: /bc/ 上述图片中举例了匹配Email地址正则表达式。...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    5.7K20

    js正则表达式(一)

    https://blog.csdn.net/wkyseo/article/details/78017841 最近对正则表达式又不熟悉了,故重新疏漏API,以后每日写一个正则来练习提升 正则表达式中特殊字符含义...compile compile() 方法用于在脚本执行过程中编译正则表达式,也可用于改变和重新编译正则表达式。...最新标准已废弃 支持正则表达式 String 对象方法 search stringObject.search(regexp) 返回值:stringObject 中第一个与 regexp 相匹配子串起始位置...在全局检索模式下,match()即不提供与子表达式匹配文本信息,也不声明每个匹配子串位置。如果您需要这些全局检索信息,可以使用 RegExp.exec()。...”sticky“ 标志正则表达式 sticky 属性反映了搜索是否具有粘性( 仅从正则表达式 lastIndex 属性表示索引处搜索 ) var str = '#foo#'; var regex

    3.8K40

    JS高级」正则表达式

    1.正则表达式概述 1.1什么是正则表达式 正则表达式( Regular Expression )是用于匹配字符串中字符组合模式。在JavaScript中,正则表达式也是对象。...其他语言也会使用正则表达式,本阶段我们主要是利用JavaScript 正则表达式完成表单验证。 1.2 正则表达式特点 灵活性、逻辑性和功能性非常强。...比如用户名: /^[a-z0-9_-]{3,16}$/ 2.正则表达式js使用 2.1正则表达式创建 在 JavaScript 中,可以通过两种方式创建一个正则表达式。...3.正则表达式特殊字符 3.1正则表达式组成 一个正则表达式可以由简单字符构成,比如 /abc/,也可以是简单和特殊字符组合,比如 /ab*c/ 。...特殊字符非常多,可以参考: MDN官方手册 jQuery 手册:正则表达式部分——正则测试工具 3.2边界符 正则表达式边界符(位置符)用来提示字符所处位置,主要有两个字符 边界符 说明 ^ 表示匹配行首文本

    2.5K20

    vue.jscomputed计算属性,表达式js另存为”

    简单讲,vue模板是基于html,就是html里加模板语法,所以模板里js注定不能太复杂。如果业务逻辑很复杂,就不能放在模板里了,否则这模板就成了一个业务模块,从而失去模板意义了。...所以,怎么着都得把这些逻辑js拿出来单独放在一个地方,这个事情在vue.js里,就是computed来做。 //////// vuecomputed,计算属性。 网上找一个例子, ?...其实就是把实现逻辑js,从模板里拿出来放到了computed属性之中,而且它是一个实时计算,当你关联了相应对象之后,当对象值发生变量,就会触发实时改变。...很简单, 1,computed是计算表达式。 当值有变化时候,计算新值; 2,watched,应该算是一个回调。 ? cn.vuejs.org/里写很清楚 看这个, ?...当watch时候,执行question方法,这不就是回调么。当xxx时候,做xxx什么,这个事情computed是没法做,因为它只是计算表达式而已。

    1.7K60

    理解一句【async javascript and xml `异步JS` `XML`】

    AJAX : async javascript and xml 异步JS XML 异步JS AJAX 里异步JS,并不是指JS异步编程,也不是指AJAX里面只能够走异步编程,其里面也是可以走同步编程...此处异步指的是局部刷新(对应是全局刷新)。...XML XML是指可扩展标记语言,用自己自定义标签来存储数据,在早期,是基于AJAX和服务器进行交互数据格式一般都是用XML格式为主,因为它能够清晰展示出对应数据和结构层级。...但是到后来,流行了一种新数据格式JSON,它不仅比XML更清晰展示数据结构,而且同样数据存储,JSON更加轻量,也方便解析和相关操作,所以现在前后端数据交互都以JSON格式为主。

    6210

    js正则表达式语法

    匹配中文字符正则表达式: [u4e00-u9fa5] 匹配双字节字符(包括汉字在内):[^x00-xff] 匹配空行正则表达式:n[s| ]*r 匹配HTML标记正则表达式:/.*|.../ 匹配首尾空格正则表达式:(^s*)|(s*$) 匹配Email地址正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 匹配网址URL正则表达式...这在使用或字符“(|)”来组合一个模式各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略表达式。 (?...对所获取匹配引用。例如,“(.)\1”匹配两个连续相同字符。 \n 标识一个八进制转义值或一个向后引用。如果\n之前至少n个获取表达式,则n为向后引用。...如果\nm之前至少有nm个获得子表达式,则nm为向后引用。如果\nm之前至少有n个获取,则n为一个后跟文字m向后引用。

    4.7K10
    领券