057_全局对象

1. 在JavaScript代码嵌入一个特殊环境中时, 全局对象通常具有环境特定的属性。在浏览器中, JavaScript全局对象就是Window对象。

2. 全局对象只是一个对象, 而不是类。既没有构造函数, 也无法实例化一个新的全局对象。

3. 全局函数

4. 全局属性

5. encodeURI()函数

5.1. encodeURI()函数可把字符串作为URI进行编码。

5.2. 语法

encodeURI(URIstring)

5.3. 参数

5.4. 返回URIstring的副本, 其中的某些字符将被十六进制的转义序列进行替换。

5.5. 该方法不会对ASCII字母和数字进行编码, 也不会对这些ASCII标点符号进行编码。

6. encodeURIComponent()函数

6.1. encodeURIComponent()函数可把字符串作为URI组件进行编码。

6.2. 语法

encodeURIComponent(URIstring)

6.3. 参数

6.4. 返回URIstring的副本, 其中的某些字符将被十六进制的转义序列进行替换。

6.5. 该方法不会对ASCII字母和数字进行编码, 也不会对这些ASCII标点符号进行编码。不过, 这些用于分隔URI组件的标点符号(;/?:@&=+$,#), 会由一个或多个十六进制的转义序列替换。

7. decodeURI()函数

7.1. decodeURI()函数可对encodeURI()函数编码过的URI进行解码。

7.2. 语法

decodeURI(URIstring)

7.3. 参数

7.4. 返回URIstring的副本, 其中的十六进制转义序列将被它们表示的字符替换。

8. decodeURIComponent()函数

8.1. decodeURIComponent()函数可对encodeURIComponent()函数编码的URI进行解码。

8.2. 语法

decodeURIComponent(URIstring)

8.3. 参数

8.4. 返回URIstring的副本, 其中的十六进制转义序列将被它们表示的字符替换。

9. eval()函数

9.1. eval()函数可计算某个字符串, 并执行其中的的JavaScript代码。

9.2. 语法

eval(string)

9.3. 参数

9.4. 返回通过计算string得到的值(如果有的话)。

9.5. 该方法只接受原始字符串作为参数, 如果string参数不是原始字符串, 那么该方法将不作任何改变地返回。因此请不要为eval()函数传递String对象来作为参数。

9.6. 虽然eval()的功能非常强大, 但在实际使用中用到它的情况并不多。而且eval()效率低下。

10. 例子

10.1. 代码

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8" />
		<title>全局函数</title>
	</head>
	<body>
		<script type="text/javascript">
			var userName = '张三@qq.com';
			var password = 'a !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~1';
			var uri = 'http://www.zrq.com/login.action?';

			var eURI = uri + 'userName=' + encodeURI(userName) + '&password=' + encodeURI(password);
			var eURICpt = uri + 'userName=' + encodeURIComponent(userName) + '&password=' + encodeURIComponent(password);

			document.write('userName = ' + userName + ', password = ' + password + '<hr />');	
			document.write(eURI + '<br />');
			document.write(eURICpt + '<hr />');
			document.write(decodeURI(eURI) + '<br />');
			document.write(decodeURIComponent(eURICpt) + '<hr />');

			eval("x=10;y=20;document.write(x+' * '+y+' = '+x*y);");
		</script>
	</body>
</html>
<!-- 
空格 ! "   #   $   %   &   ' ( ) * +   ,   - . /   :   ;   <   =   >   ?   @   [   \   ]   ^   _ `   {   |   }   ~
空格 ! %22 #   $   %25 &   ' ( ) * +   ,   - . /   :   ;   %3C =   %3E ?   @   %5B %5C %5D %5E _ %60 %7B %7C %7D ~
空格 ! %22 %23 %24 %25 %26 ' ( ) * %2B %2C - . %2F %3A %3B %3C %3D %3E %3F %40 %5B %5C %5D %5E _ %60 %7B %7C %7D ~

" % < > [ \ ] ^ ` { | }
空格 # $ & + , / : ; = ? @ 

奇怪的是encodeURIComponent为什么没有对!'()~五个字符编码
-->

10.2. 效果图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python中,可以通过多种方式实现全局对象的共享。 1. 使用模块变量:在一个模块中定义一个变量,并在其他模块中导入该变量来实现全局对象的共享。例如,我们可以在一个模块中定义一个全局变量,并在其他模块中导入该变量来使用它。 ```python # global_obj.py ws = None # other_module.py from global_obj import ws # 使用ws变量 ws.send(message) ``` 2. 使用类的类变量:可以在一个类中定义一个类变量,并通过类名来访问和修改该变量。这样可以实现在不同的文件中共享全局对象。 ```python # global_obj.py class WebSocket: ws = None @classmethod def send(cls, message): cls.ws.send(message) # other_module.py from global_obj import WebSocket # 使用WebSocket类的ws变量 WebSocket.ws.send(message) ``` 3. 使用单例模式:单例模式可以确保一个类只有一个实例,并提供一个全局访问点来访问该实例。在Python中,模块是在首次导入时创建的单例对象,因此可以在一个模块中定义一个类,并在其他地方导入该模块来使用单例对象。 ```python # singleton.py class SingletonClass: def __init__(self): # 初始化对象 pass # 创建单例对象 singleton_instance = SingletonClass() # other_module.py from singleton import singleton_instance # 使用singleton_instance对象 singleton_instance.do_something() ``` 这些方法都可以实现在不同的文件中共享全局对象。具体使用哪种方法取决于你的需求和项目结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值