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

JavaScript 模式》读书笔记(3)— 字面量和构造函数3

它是一种轻量级数据交换格式,且可以很方便地用于多种语言,尤其是在JavaScript中。...实际上,对于JSON而言,只是一个数组和对象字面量表示方法的组合: {"name":"value","some":[1,2,3]}   JSON和文字对象之间唯一的区别,就是在JSON中,属性名称需要包装在引号中才能成为合法的...此外,在使用构造函数时,不仅需要转义引号,还需要双反斜杠。如上代码,这里需要四个反斜杠才能匹配单个反斜杠。使得其难以阅读和修改。...在第二个斜杠之后,可以将该模式修改为不加引号的字母形式: g——全局匹配 m——多行 i——大小写敏感匹配   模式修改器可以允许任何顺序或者组合方式出现:var re = /pattern/gmi;...message:当创建对象时传递给构造函数的字符串。 错误对象也还有一些其他的属性,比如发生错误的行号和文件名,但这些额外属性都是浏览器扩展属性,在多个浏览器实现中并不一致,因而并不可靠。

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

    《JavaScript 模式》读书笔记(3)— 字面量和构造函数3

    五、JSON JSON是指JavaScript对象表示以及数据传输格式。它是一种轻量级数据交换格式,且可以很方便地用于多种语言,尤其是在JavaScript中。...实际上,对于JSON而言,只是一个数组和对象字面量表示方法的组合: {"name":"value","some":[1,2,3]}   JSON和文字对象之间唯一的区别,就是在JSON中,属性名称需要包装在引号中才能成为合法的...此外,在使用构造函数时,不仅需要转义引号,还需要双反斜杠。如上代码,这里需要四个反斜杠才能匹配单个反斜杠。使得其难以阅读和修改。...也就是说,如果在一个循环中创建了相同的正则表达式,那么后面返回的对象与前面创建的对象相同,并且所有的属性都将被设置为第一次的值。这种行为已经在ES5中得到了改变,并且字面量会创建新的对象。   ...message:当创建对象时传递给构造函数的字符串。 错误对象也还有一些其他的属性,比如发生错误的行号和文件名,但这些额外属性都是浏览器扩展属性,在多个浏览器实现中并不一致,因而并不可靠。

    57140

    深入剖析vscode工具函数(八)解密复杂正则表达式

    .[^"\\]*)***:非捕获分组,匹配转义字符后的任意字符,以及随后的非双引号和非反斜杠的字符零次或多次;这个分组可以重复零次或多次; **"**:匹配双引号。...识别转义字符很简单,就是一个反斜杠加上任意一个字符: /\\./ 在转义字符之后还有任意的字符,甚至还能有转义字符,所以剩余的匹配部分就是: /[^\\"]*/ 两个加起来,我们就能匹配到后面那个字符串了...在VSCode中的应用 这个函数在VSCode中用来去除 json 中的注释,因为 json 本身是不支持注释的。...通过避免注释,JSON 可以确保跨平台和编程语言的可读性和可用性。 减少滥用:Crockford 观察到在 XML 中,注释经常被滥用,如用于配置文件中的条件处理等。...这些特性使得 JSON5 在阅读和编写方面更加友好,尤其适用于需要添加注释或使用更接近 JavaScript 语法的场景。

    60520

    记录一下Jquery日常使用过程中的一些经验

    $(selector).is(selectorElement,function(index,element)) jq在css的基础上扩展了很多选择器,尝试使用你会有很多意外的惊喜。...jq中的很多操作都是异步的,代码的顺序不代表操作的执行顺序。要求严格的话,需要通过指定操作的时间来控制执行顺序。...jq动态生成html,不会绑定原有的事件,解决办法,动态添加事件: $("body").on("click","#customer li",function (event) { //事件代码...jq.index(),获取指定jq对象在jq对象集合里的索引位置。 Mutation Observer API 用来监视 DOM 变动。...用jq把事件和封装的对象事件处理方法进行绑定。 最终可以避免事件处理和执行代码混乱,造成维护困难,代码阅读性极差。 这应该是一种编程组装的方法,基于此方法,结合模块化思想。

    1.2K20

    JSON 序列化中的转义和 Unicode 编码

    在研究 Unicode 颜文字的时候,由于我们的数据传输是通过 JSON 串来完成的,在对颜文字进行转码传输的过程中,也发现了一个问题。解决问题之后,便有了本总结文。...JSON 中的普通转义字符 个人认为,JSON 是目前针对程序员而言可读性(readability)最佳的数据传输格式之一,并且 JSON 完整地考虑到了数据传输中的转义,避免出现各种注入风险。.../ 斜杠 \/ \ 反斜杠 \\ \b 退格符 \b \f 垂直制表符 \f Tab 水平制表符 \t...Go 的各种字符串格式化操作中,百分号是一个关键字符,这样可以避免在打日志或者其他设计格式化的操作时出现错误。...在 ASCII 为主的数据传输中,这种编码方式比较稳妥,并且不会额外增加过多的数据量。当然对于 Unicode 字符比较多的情况下(比如大量的中文),这就需要程序员考虑一下额外带来的网络花销了。

    11.9K51

    JSON神器之jq使用指南指北

    使用 Windows 命令 shell (cmd.exe) 时,最好在命令行中给出 jq 程序时使用双引号(而不是-f program-file选项),但是 jq 程序中的双引号需要反斜杠转义。...如果数组未排序,bsearch(x) 将返回一个可能不感兴趣的整数。 字符串插值 -\(foo) 在字符串中,您可以在反斜杠后的括号内放置表达式。无论表达式返回什么,都将被插入到字符串中。...输入字符换行 (ascii 0x0a)、回车 (ascii 0x0d)、制表符 (ascii 0x09) 和反斜杠 (ascii 0x5c) 将分别输出为转义 序列\n, \r, 。...这意味着不可能在 jq 中构建循环值(例如第一个元素是自身的数组)。这是非常有意的,并确保 jq 程序可以生成的任何内容都可以用 JSON 表示。...这旨在允许将模块与例如版本控制文件、自述文件等一起放置在目录中,但也允许单文件模块。 不允许具有相同名称的连续组件以避免歧义(例如,“foo/foo”)。

    29.6K30

    React学习(九)-React中发送Ajax请求以及Mock数据

    的替代品,它的API是基于Promise设计的,旧版本的浏览器不支持fetch,需要用polyfill es6-promise 具体更详细的fetch使用,可参照MDN文档的 方式三:使用JQ的Ajax...)的方式 将json字符串,转化为json对象,然后做处理的 如果你是使用axios的方式请求数据,那么是不用进行json序列的格式化的 小结 在React中请求数据的几种方式 axios(普遍常用)...目录下mock本地数据 这种方式比较简单,直接在工程public目录下创建一个api文件夹,新建一个json文件就可以了 若使用axios进行数据的请求,或者fetch的方式,url以反斜杠/开头就可以了...,如上示例代码所示,但是若是request的方式,url写成反斜线/的方式是不生效的 使用request的方式,需要带上http协议,它也支持线上接口 若是遇到跨域问题,在请求头headers中,添加Access-Control-Allow-Origin...,主要是开拓自己的思路 这个工具用得不爽,就用另外一个的,总有一个适合自己的 有时候,也不会吊死在一棵树上,要相信,办法总比困难要多 作者:川川,一个靠前排的90后帅小伙,具有情怀的代码男,路上正追逐斜杠青年的践行者

    4.9K31

    一日一技:HTML里面提取的JSON怎么解析不了?

    我们在开发爬虫的过程中,经常发现有一些网站,会直接把数据以JSON的形式,通过标签放到页面源代码中。...其实原因非常简单,问题就出现在HTML中的JSON里面的反斜杠: 我们知道,反斜杠是不能单独存在的,它有自己独特的意义。...在代码里面,我使用了'''三个引号来抱住整个网页的HTML,这个时候,Python发现这里的\"这种写法,会自动把反斜杠去掉。...于是,正则表达式提取出来的JSON,引号就会出现冲突,如下图所示: 这样的JSON就会变成不合法的JSON。因为在JSON中,字符串内部作为普通字符的双引号,应该使用反斜杠转义。...要解决这个问题,有三种方法: 手动修改JSON里面的所有反斜杠,把每一根反斜杠变成两根反斜杠: \" -> \\"。

    48230

    一日一技:难以置信,还有人不知道反斜杠和引号的关系

    ,那么你可以在字符串里面自带的单引号前面加上反斜杠;如果你字符串最外面使用的是双引号,那么你可以在字符串里面自带的双引号前面加上反斜杠。...本文开头的这个同学,他发的截图是这样的: ? 可以看到,它的字典中,content的值是使用三双引号包起来的,所以,值里面的单引号没有必要加上反斜杠。...场景2,在 JSON 中。JSON 的Key 和 Value 都是使用双引号包裹的,如下图所示: ?...如果你的字符串里面原本就有双引号,那么,无论你在代码里面定义的时候怎么写,最终打印出来的 JSON 字符串中一定有反斜杠: ?...有些同学在写爬虫的时候,抓目标网站的 API 接口,看到返回的 JSON 字符串里面有反斜杠,想都不想,反手一个.replace把所有反斜杠全部替换成空。这种做法显然是错误的。

    1.7K40

    一日一技:你怎么总是搞不清反斜杠的问题

    大家在开发Python的过程中,一定会遇到很多反斜杠的问题,很多人被反斜杠的数量搞得头大。...在Python里面,反斜杠不能单独出现,这里\u676d\u5dde中的两根反斜杠,实际上应该是\u。表示这两个编码是Unicode编码。...这就相当于在Python中,可以这样定义一个包含双引号的字符串: >>> a = "跟我说:\"你好\"" >>> print(a) 跟我说:"你好" 这里,你好两侧的双引号都加上了反斜杠,让它成为普通的字符...而一个字符串里面如果自带反斜杠,那么JSON在对他再次转换的时候,需要标记这是一个普通的字符串形式的反斜杠,不是一个有特殊意义的反斜杠,所以使用\\表示一个普通的反斜杠。...为什么在info_json里面,出现了\\u676d\\u5dde,为什么在info_json_json里面双引号前是两根反斜杠,而\"\\u676d\\u5dde\"竟然变成了\\"\\\\u676d

    2.4K40

    JSON5 格式标准 Data Exchange Format 官方文档 中英双语

    如果字符在基本拉丁或拉丁-1 补充 Unicode 字符范围内(U+0000 至 U+00FF),则可以表示为四个字符的序列:一个反斜杠,后跟小写字母 x ,然后是两个表示字符代码点的十六进制数字。...The reverse solidus and line terminator sequence are not included in the string.字符串可以通过在反斜杠后跟以下之一的新行终止序列来继续在新行上...反斜杠和新行终止序列不包括在字符串中。...1 到 9 之外的任何字符,则该字符将被包含在字符串中,但反斜杠本身不会。...由于 ECMAScript 5.1 不允许这些码点出现在字符串中,作者应避免在 JSON5 文档中包含它们。当 JSON5 解析器在字符串中找到未转义的这些码点时,应产生警告。

    25810

    Dockerfile关键词实验演示:

    要在 `LABEL` 值中包含空格,请像在命令行中一样使用引号和反斜杠方法一:每一个键值对对应一个关键字# Set one or more individual labelsLABEL com.example.version...zjt:v1 --format "{{json .ContainerConfig.Labels}}" | jq验证标签的继承性添加一个标签cd test1/vim DockerfileFROM zjt...}}" | jq标签的重写性添加一个标签cd test1/vim DockerfileFROM zjt:v2LABEL version=v3将文件制作为镜像(在dockfile文件当前目录执行)docker...当容器中的应用有持久化数据的需求时可以在 Dockerfile中 使用该指令格式用法:FROM baseVOLUME ["/tmp/data"]WORKDIR(切换工作目录)作用:在容器内部设置工作目录...也就是说在子镜像中执行)作用:ONBUILD 指定的命令在构建镜像时并不执行,而是在它的子镜像中执行为镜像创建触发器,当一个镜像被用作其他镜像的基础镜像时,这个触发器会被执行。

    1K20

    【一日一技】破译反斜杠数量问题的密码

    “大家在开发Python的过程中,一定会遇到很多反斜杠的问题,很多人被反斜杠的数量搞得头大。这期我们就来介绍一下如何处理这些让人头疼的反斜杠。”...在Python里面,反斜杠不能单独出现,这里\u676d\u5dde中的两个反斜杠,实际上应该是\u。表示这两个编码是Unicode编码。...这就相当于在Python中,可以这样定义一个包含双引号的字符串: >>> a = "跟我说:\"你好\"" >>> print(a) 跟我说:"你好" 这里,你好两侧的双引号都加上了反斜杠,让它成为普通的字符...而一个字符串里面如果自带反斜杠,那么JSON在对他再次转换的时候,需要标记这是一个普通的字符串形式的反斜杠,不是一个有特殊意义的反斜杠,所以使用\\表示一个普通的反斜杠。...❖ 如图所示 1、为什么在info_json里面,出现了\\u676d\\u5dde 2、为什么在info_json_json里面双引号前是两根反斜杠,而\"\\u676d\\u5dde\"竟然变成了\

    2.3K40

    使用Unix工具解析JSON

    比如jq: curl -s 'https://api.github.com/users/lambda' | jq -r '.name' 你也可以使用已经安装在你系统上的工具,比如使用Python的json...模块,这样可以避免额外的依赖,同时仍然拥有一个合适的JSON解析器。...你可以编写一个在Bash 4或zsh中工作的脚本,其中之一在大多数macOS、Linux和BSD系统上都是可用的,但编写一个适用于这种多语言脚本的shebang行将非常困难。...因此,使用awk/sed/grep的这些快速而简易的解决方案很可能较为脆弱,如果输入格式的某些方面发生变化,比如压缩空白字符、在JSON对象中增加额外的嵌套层级,或者字符串内的转义引号,这些方案就可能会失效...一个足够健壮、能处理所有JSON输入而不崩溃的解决方案也会相对较大且复杂,因此与添加对jq或Python的额外依赖相比,区别并不会太大。

    34910

    Python json和simplejson的使用

    在Python中,json字符串和Python数据类型的转换可以使用json模块或simplejson模块。...在dumps对数据进行处理时,会做encoding(编码)操作,dumps()中的ensure_ascii默认是为True的,会将中文也编码成ascii,所以我们指定ensure_ascii=False...这都是因为json字符串的样式不是合法的json格式,一般这种情况是从数据库中读数据时或者从文件中读数据时会发生. 最常出现的就是数据字符串里面有双引号",并且双引号前没有反斜杠转义。...所以在使用json.loads()时要先确认要loads()的json字符串是否合法。如果有双引号则要有反斜杠转义。 ?...解决方法: 如果出现了上面的报错,可以检查是否有不合法的字符,如有双引号,可以将双引号进行转义,避免解析时将其识别为json的双引号造成双引号多了报错,如果里面有带反斜杠\的url链接,可以将反斜杠\替换成斜杠

    2.3K30

    RoslynMSBuild 在编译期间处理路径中的斜杠与反斜杠

    本文介绍如何在项目文件 csproj,或者 MSBuild 的其他文件(props、targets)中处理路径中的斜杠与反斜杠。...---- 路径中的斜杠与反斜杠 我们都知道文件路径的层级之间使用斜杠(/)或者反斜杠(\)来分隔,具体使用哪一个取决于操作系统。...在 MSBuild 中,通常有一个在文件夹路径末尾添加反斜杠 \ 的惯例,这样可以直接使用属性拼接来形成新的路径而不用担心路径中的不同层级的文件夹会连接在一起。...不过由于需要照顾到各式各样的开发者,包括大多数的那些从来不看文档的开发者,我们需要进行本文所述的处理。 判断路径末尾是否有斜杠或反斜杠 如果路径末尾没有反斜杠,那么我们现在就添加一个反斜杠。...我们可以确保路径的末尾添加一个空格来避免将引号也解析成命令行的一部分: 1 2 3 <Target Name="WalterlvDemoTarget" BeforeTargets="BeforeBuild

    58040

    如何在 Linux 中使用空格处理文件名?

    您会注意到一件事,Linux 中的文件通常不包含名称,您的老师或同事在文件和目录名称中使用下划线而不是空格。...并不是说您不能在 Linux 终端中的文件名中使用空格,只是它会产生额外的痛苦,这就是为什么你应该尽可能避免它。 为什么?...双引号忽略除 $、反引号和反斜杠之外的所有内容。更多关于它的一些其他教程。 在文件名中创建一个带有空格的文件 现在,您需要在终端中输入空格以在此处创建文件名,再次使用反斜杠或引号。...与上一节类似,您可以使用引号在文件名中创建带有空格的新文件: touch "file name with spaces" 或者反斜杠: touch file\ name\ with\ spaces [202204081654386...这就是为什么您应该尽量避免在文件名中使用空格或其他特殊字符的原因。要分隔文件名中的单词,请使用下划线。

    4.3K00
    领券