JS篇 学习笔记

 

ECMA Script API:

Array.prototype.splice(start, deleteCount, value ...)

  数组操作中有:push、pop、unshift左移入、shift左进出;splice不仅可以完成删除操作,而且还可以从中间插入:当deleteCount参数为0时就可以将后面的多个参数添加进来;

 

  正则表达式中,匹配分为两类:

  1) 匹配字符

  如:\s, \d, \w等

  2) 匹配位置

  如:\b,^, $, (?=...), (?!...)

  这类往往用于断言:如果匹配的话,则要满足这样的规则,匹配的指针不会向前进或者后退。如:/\w(?=\d)/g表示匹配字母后跟随一个数字的子串。

// 断言:匹配字母下一位是非1的数字;
"a1b2cd3ef".match(/[a-zA-Z](?=\d)(?!1)/g)    // ["b", "d"]
// 矛盾了:要求匹配项的以数字开头,还的是:[a-zA-Z]
"a1b2cd3ef".match(/(?=\d)[a-zA-Z]/g)       // null

// 将数字串,转换为每3位用逗号分隔的国际化表示
"0123456789".replace(/\d{1,3}(?=(\d{3})+$)/g, "$&,")  // "0,123,456,789"

 

String.prototype.match(regexp)

  分两类情况:

  1) 正则含有g选项,如果不匹配返回null,否则返回所有匹配的字符串。(不包括Group匹配子串)

  2) 正则不含有g选项,如果不匹配返回null,否则返回一个数组,元素0为匹配的字符串片段,后面的元素为匹配的Group子串。该数组含有两个属性:index代表匹配的位置,input代表被匹配的字符串本身。

 

String.prototype.replace(string or regexp, replacement)

  如果是字符串,则不转换为正则;如果是正则,则replacement可以是以下:

  1) 字符串:其中的$代表特殊含义:$1, $2, ...代表多个Group匹配子串, $&代表匹配的整串,$`代表匹配左侧、$'代表匹配右侧;

// 因为/\d/匹配了a1b,所以1被a1b替换
"a1b".replace(/\d/, "$`$'")      // "aabb"
// 此时/\d/匹配a1b
"a1b".replace(/\d/, "$`-$'")     // "aa-bb"

  2) 函数:参数如下:参数0为匹配的整串,然后为Group子串,然后为Group子串的位置index,最后为被匹配的字符串。

 

 

即时编译的几种方式:

1. eval(' ... ')

2. new Function(' ... ')

3. setTimeout(' ... ', 0)              // 不推荐

4. <script type='text/javascript'> ... </script>  // 通过JS创建script节点,append到head节点中

/*
eval:
1. 在当前的function context中执行,可以修改值;
2. 字符串中的最后一句表达式可以作为eval的返回值;
3. 返回值如果不是简单类型,需要用"(...)"小括号围绕起来;
*/
(function(){var o1 = eval('var s1 = "test"; ({ a1: s1 }) ');console.log(o1, s1);
})();
/* 
new Function():
1. 执行时将全局作用域作为function context;
*/
var a1 = "outer";
(
function(){var a1 = 'test';var f1 = new Function('console.log(this === window);'); // truevar f2 = new Function('return a1;'); // a1 is not defined console.log(f1(), f2()); })();

 

转载于:https://www.cnblogs.com/diydyq/p/4277500.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

05-散列表

数据结构和算法 基于《算法图解》—Aditya Bhargava 和《数据结构》—严蔚敏 第5章 散列表 假设你在一家杂货店上班。有顾客来买东西时&#xff0c;你得到一个本子中查找价格。如果本子的内容不是按字母顺序来排序的&#xff0c;你可能为查找苹果价格而浏览每一页&#xff0c…

疯狂ios讲义疯狂连载之实现游戏逻辑(2)

13.6.5 定义获取通道的工具方法这里所谓的通道指的是一个方块上、下、左、右4个方向上的空白方块图13.10显示了一个方块四周的通道。图13.10 方块四周的通道下面是获取某个坐标点四周通道的4个方法。程序清单codes/13/Link/Link/sources/board/FKGameService.m13.6.6 没有转折点…

linux之进程间通信--使用信号

一、什么是信号用过Windows的我们都知道&#xff0c;当我们无法正常结束一个程序时&#xff0c;可以用任务管理器强制结束这个进程&#xff0c;但这其实是怎么实现的呢&#xff1f;同样的功能在Linux上是通过生成信号和捕获信号来实现的&#xff0c;运行中的进程捕获到这个信号…

opencv 平面法向量_在OpenCV中绘制平面的法向量

我使用2D条形码识别3D空间中的平面&#xff0c;我想绘制相对于其中心的法线。这是我用来计算正常的代码def compute_normal(camera, board, bounds, frame):extrinsics, ip, op get_extrinsics(camera, frame, board, bounds)extrinsic extrinsics[0]if not extrinsic: retur…

CentOS升级Python2.7及安装pip

CentOS升级Python2.7及安装pip<?xml version"1.0" encoding"UTF-8"?> CentOS升级Python2.7及安装pip1) 升级Python2.7?1234567891011121314151617181920212223242526272829303132python -V # 查看版本&#xff1a;Python 2.6.6mkdir -p ~/Env/py…

解决Maven工程中报 Missing artifact jdk.tools:jdk.tools

2019独角兽企业重金招聘Python工程师标准>>> 解决方法&#xff1a; 在pom.xml中添加如下依赖&#xff1a; <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>…

回到地球之后,这个男人创建了Ubuntu

文 | 大东出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013&#xff09;2002 年&#xff0c;莫斯科当地时间 4 月 25 日 9 时 26 分&#xff0c;满载着补给和 3 名宇航员的“联盟-TM 号”航天飞船在“联盟 U”火箭的推进下飞往国际空间站。同行的三人中&#xff0c;年…

Hadoop完全分子式环境搭建—问题及解决办法

Hadoop完全分布式环境搭建 ps:本人是按照尚硅谷的教程搭建的&#xff0c;版本hadoop2.7&#xff0c;centos版本6&#xff0c;一台主机&#xff0c;两台从机。 一&#xff0e;版本问题 1.尽量使用hadoop版本2&#xff0c;尽量不要使用最新版本3。因为会出现无法解决的问题&…

linux c之perror和exit使用总结

一、perror介绍 perror函数用一种简单统一的方式报告错误。例如,一个程序试读一个不存在的磁盘文件,操作系统除了“出错了!”,这时,库函数首先会将代表操作出错的具体原因的错误代码保存到全局整型变量errono(在errno.h中定义),然后它再将错误提示传给用户程序。perror…

autoload.php beanbun_Beanbun: 简单开放的 PHP 爬虫框架

BeanbunBeanbun 是用 PHP 编写的多进程网络爬虫框架&#xff0c;具有良好的开放性、高可扩展性。项目地址&#xff1a;github.com/kiddyuchin.…文档地址&#xff1a;beanbun.org由来我希望有这样一个爬虫框架&#xff1a;在简单需求的情况下&#xff0c;可以用最少的代码快速建…

Andorid Binder进程间通信---总结

一、Server和Service Manager进程间通信 Service Manager进程启动时&#xff0c;已经创建了Service Manager实体对象&#xff0c;没有Service Manager本地对象。 Server首先获取了Server代理对象&#xff0c;句柄值为0。没有Server引用对象。 Server----->Service Manager S…

POJ 2135 最小费用最大流

思路&#xff1a; 源->1连费用0 流量2 其它的边 费用w 流量1 n->汇 费用0 流量2 最小费用流 搞定~ //By SiriusRen #include <queue> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define N 2010 #def…

06-广度优先搜索:图、队列

数据结构和算法 基于《算法图解》—Aditya Bhargava 和《数据结构》—严蔚敏 第6章广度优先搜索 6.1 简介 广度优先搜索—breadth-first search&#xff0c;BFS. 主要内容图和队列。 广度优先搜索能让你能够找出两样东西之间的最短距离&#xff0c;比如&#xff1a;编写国际跳…

[转]Displaying standard DataTables in MVC

本文转自&#xff1a;http://stackoverflow.com/questions/2243898/displaying-standard-datatables-in-mvc Controller action:public ActionResult Index() {ViewData["Message"] "Welcome to ASP.NET MVC!";DataTable dt new DataTable("MyTable…

linux c之解决使用socket函数返回为0的问题

1、问题&#xff1a; 在 linux 平台下 写socket&#xff0c;实现简单的tcp通信&#xff0c;服务端第一次调用 socket函数返回 0 2、找原因&#xff1a; 我的代码是这样写的 if ((server_sockfd socket(AF_INET,SOCK_STREAM, 0) < 0)); 特么总是返回0&#xff0c;日了狗 自…

网站增加打赏功能

1、前提条件&#xff1a; 设置——博客设置——博客侧边栏公告&#xff08;支持HTML代码&#xff09;后面的如果是“申请开通”&#xff0c;必须先申请开通&#xff1b;如果是“支持js代码”&#xff0c;那就代表你已经开通过了&#xff0c;有写js代码的权限了 2、准备材料&…

虎年云原生落地技术趋势

今天是立春&#xff0c;虎年第一天。去年我写过一篇 牛年 dotnet云原生技术趋势[1]&#xff0c;今天再来写一篇虎年云原生落地技术趋势&#xff0c;去年局限在.NET 平台上的云原生落地&#xff0c;我今年在去年探索云原生落地的基础上从多语言云原生技术落地的趋势来谈谈。在 2…

WdatePicker 设置日期第一个比第二个的日期小

WdatePicker 设置日期第一个比第二个的日期小 可以设置&#xff0c;日期只显示某一天的&#xff0c;比如只显示周一&#xff0c;和周日 <input id"Text1" class"Wdate" onFocus"WdatePicker({disabledDays:[0,2,3,4,5,6],maxDate:#F{$dp.$D(\Text2…

excel中调用python程序_一篇文章带你使用Python搞定对Excel表的读写和处理

文章目录一、我的需求二、代码三、总结一、我的需求我想要excel 的最后1列由列表形式转换为数值类型​可以看到最后一列有的是列表&#xff0c;有的直接是数值&#xff0c;想要整个列表中的内容都转为数值类型二、代码import openpyxldef write_excel_xlsx():# 写入数据准备wor…

07-狄克斯特拉算法

数据结构和算法 基于《算法图解》—Aditya Bhargava 和《数据结构》—严蔚敏 第7章 狄克斯特拉算法 上一章的广度优先搜索&#xff0c;找出的是段数最少的路径&#xff1b; 本章狄克斯特拉算法&#xff0c;找出的是最快的路径。 7.1 使用狄克斯特拉算法 步骤&#xff1a; 第…