读javascript高级程序设计08-引用类型之Global、Math、String
一、Global
所有在全局作用域定义的属性和方法,都属于Global对象。
1.URI编码:
encodeURI():主要用于对整个URI编码。它不会对本身属于URI的特殊字符进行编码。
encodeComponentURI():主要用于对URI中的某一部分进行编码,很常用的是对查询字符串参数进行编码。它会对所有非标准字符进行编码。
对应的解码方法是decodeURI()和decodeURIComponent。
var uri='http://www.cnblogs.com?a=1 2&b=陈&c=123';
var a=encodeURI(uri);// http://www.cnblogs.com?a=1%202&b=%E9%99%88&c=123
var b=encodeURIComponent(uri);// http%3A%2F%2Fwww.cnblogs.com%3Fa%3D1%202%26b%3D%E9%99%88%26c%3D123
decodeURI(a);//√"http://www.cnblogs.com?a=1 2&b=陈&c=123"
decodeURI(b);//×"http%3A%2F%2Fwww.cnblogs.com%3Fa%3D1 2%26b%3D陈%26c%3D123"
decodeURIComponent(a);//√"http://www.cnblogs.com?a=1 2&b=陈&c=123"
decodeURIComponent(b);//√http://www.cnblogs.com?a=1 2&b=陈&c=123
2.eval()方法
当调用eval()方法时,会执行参数中传入的语句,并把执行结果插入到原位置。
该方法执行的代码与当前调用环境具有相同的作用域链。
var a=1;
eval('function test(){alert(a);}');
test();//结果1
3.在web浏览器中,全局作用域的变量和方法都会成为window对象的属性。
var name='jing';
function sayName(){
console.log(name);
}
window.sayName(window.name);//jing
二、Math对象
Math对象包含了很多数据计算的属性和方法。常用的几个:
1.Math.min()和Math.max:计算一组数值中的最大值和最小值,参数可以任意多个数值。
Math.min(3,5,10,88,3);//
Math.max(3,5,10,88,3)//
当计算一个数组中的最大最小值时,可以这样调用:
var result=[3,5,10,88,3];
Math.min(result);//错误,NaN
Math.min.apply(Math,result);//
2.舍入方法
Math.ceil():向上取整;
Math.floor():向下取整;
Math.round():四舍五入取整。
var data=5.6;
Math.ceil(data);//
Math.floor(data);//
Math.round(data);//
Math.round(5.4)//
3.随机数random ()
Math.random()返回一个介于0和1之间的随机数,不包含0和1。
取一个整数范围内的随机数可以这样来计算:
result=(Math.random()*可能取值的总数+第一个可能的值)
三、String类型
1.字符方法
charAt(n):直接返回字符串中指定位置的字符;
charCodeAt(n):返回指定位置字符的字符编码。
var s="Javascript高级程序设计";
console.log(s.charAt(10));//高
console.log(s.charCodeAt(10));//
2.取子串
slice():第一个参数是子串开始位置索引,第二个参数是子串结束位置索引(不包括结束字符).
substring():第一个参数是子串开始位置索引,第二个参数是子串结束位置索引(不包括结束字符).
substr():第一个参数是子串开始位置索引,第二个参数是子串长度.
var s="提醒一下七夕节快到了";
console.log(s.slice(4,7));
console.log(s.substring(4,7));
console.log(s.substr(4,3));
3.字符串模式匹配
search(reg):返回字符串中第一个匹配项的索引,如果匹配不到就返回-1。方法有一个参数,可以是正则表达式或者RegExp对象。
match(reg):该方法有一个参数,可以是正则表达式或者RegExp对象。
replace():替换子串。如果想替换所有匹配的子串,那么只能用正则表达式。
var s='http://www.cnblogs.com/1/1/'
var r=/\d+/g;
s.search(r);//
s.match(r);//["1","1"] //只替换第一个匹配项
s.replace('1','janes')//"http://www.cnblogs.com/janes/1/" //替换所有匹配项
s.replace(r,'janes');//"http://www.cnblogs.com/janes/"
读javascript高级程序设计08-引用类型之Global、Math、String的更多相关文章
- 读javascript高级程序设计00-目录
javascript高级编程读书笔记系列,也是本砖头书.感觉js是一种很好上手的语言,不过本书细细读来发现了很多之前不了解的细节,受益良多.<br/>本笔记是为了方便日后查阅,仅作学习交流 ...
- 读javascript高级程序设计-目录
javascript高级编程读书笔记系列,也是本砖头书.感觉js是一种很好上手的语言,不过本书细细读来发现了很多之前不了解的细节,受益良多.<br/>本笔记是为了方便日后查阅,仅作学习交流 ...
- 读javascript高级程序设计01-基本概念、数据类型、函数
一. javascript构成 1.javascript实现由三部分组成: ECMAScript:核心语言功能 DOM:文档对象模型,提供访问和操作网页内容的方法和接口 BOM:浏览器对象模型,提供与 ...
- 读javascript高级程序设计10-DOM
一.节点关系 元素的childNodes属性来表示其所有子节点,它是一个NodeList对象,会随着DOM结构的变化动态变化. hasChildNodes():是否有子节点. var headline ...
- JavaScript高级程序设计-(4) 引用类型
1.object var person={};//与new Object()相同 一般创建对象 var person=new Object(); person.Name="admin&quo ...
- 读javascript高级程序设计17-在线检测,cookie,子cookie
一.在线状态检测 开发离线应用时,往往在离线状态时把数据存在本地,而在联机状态时再把数据发送到服务器.html5提供了检测在线状态的方法:navigator.onLine和online/offline ...
- 读javascript高级程序设计02-变量作用域
一. 延长作用域链 有些语句可以在作用域前端临时增加一个变量对象,该变量对象在代码执行完成后会被移除. ①with语句延长作用域. function buildUrl(){ var qs=" ...
- 读javascript高级程序设计06-面向对象之继承
原型链是实现继承的主要方法,通过原型能让一个引用类型继承另一个引用类型. 1.原型链实现继承 function SuperType(){ this.superprop=1; } SuperType.p ...
- 读javascript高级程序设计07-引用类型、Object、Array
一.引用类型 ECMAScript是支持面向对象的,可以通过引用类型描述一类对象所具有的属性和方法. 创建对象实例的方法时是用new 操作符加构造函数:var p=new Person(). 二.Ob ...
随机推荐
- DuiLib学习bug整理——某些png不能显示
今天下午遇到用ps导出的png显示不出来的情况.而从其他来源的png有的可以显示.到群里问了下也有人遇到过,但是都没想明白具体原因.后来经人指点说png保存时存在深度位不同.最后经过测试 8位深度.3 ...
- 我的新发现:AVL树旋转的一个特性
关于AVL树旋转的代码网络上铺天盖地. 一些经典的实现方法如下: AVLTree SingleLeftRotation(AVLTree A) { AVLTree B = A->left; A-& ...
- 自定义view
这两篇文章不可错过,是最靠谱的基础文献.总的来说,如果想完全定制,就继承与于View类:如果只是在原有控件基础上拓展,那就继承TextView.Button或者LinearLayout等.接下来,就以 ...
- Dynamics AX 2012 R2 堆栈跟踪:不能对客户端调用'unchecked'
有一个Custom Service一直在正常使用.今天,Reinhard尝试在JOB中以X++代码Debug Custom Service的Method时,收到以下错误提示: 'unchecked' ...
- caffe问题集锦
不断更新中... 1.问题:check failure stack trace:*** 解决方法:路径错误,重新去看自己的路径是否有错误 2.Check failed: error == cudaSu ...
- gulp watch error ENOSPC
in linux you fix this with the command:echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sy ...
- Script 简单语句的练习题
猜拳 <body>请输入剪刀或者石头或者布:<br /><input type="text" id="A"/><inp ...
- JAVA基础知识之JDBC——RowSet
RowSet概念 在C#中,提供了一个DataSet,可以把数据库的数据放在内存中进行离线操作(读写),操作完成之后再同步到数据库中去,Java中则提供了类似的功能RowSet. RowSet接口继承 ...
- php数组插入数据库这个功能该怎么实现
原文网址:https://segmentfault.com/q/1010000004048449 比如一个数组$a=array("a"=>"1",&quo ...
- python 学习笔记八 进程和线程 (进阶篇)
什么是线程(thread)? 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执 ...