对Global对象中的常用的方法进行练习和说明,对与方法的使用和说明在练习的注释中有比较详细的解释。看代码的时候注意看注释。有些时候注释比代码更重要。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Global对象学习</title>
<script type="text/javascript">
//Global 是一个单体内置对象,它的属性和方法直接使用即可。该对象没法访问(不存在)。
//Global 对象中的一些全局方法的学习
var url = "http://www.bjsxt.cn?uname=zhangsan&readname=张三";
//对url进行编码的两个方法
//encodeURI
//encodeURIComponent
//encodeURI: 不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和井字号
var str1 = encodeURI(url);
//encodeURIComponent: 则会对它发现的任何非标准字符(非字母和数字)进行编码
//encodeURIComponent 使用更多一些。可以对URI的局部进行编码,可以让局部内容包含一些URI保留字符。
var str2 = encodeURIComponent(url);
alert(str1);//http://www.bjsxt.cn?uname=zhangsan&readname=%E5%BC%A0%E4%B8%89
alert(str2);//http%3A%2F%2Fwww.bjsxt.cn%3Funame%3Dzhangsan%26readname%3D%E5%BC%A0%E4%B8%89
//对url 进行解码的两个方法
//decodeURI:用于解码encodeURI
//decodeURIComponent() 用于解码 encodeURIComponent
alert(decodeURI(str1));//http://www.bjsxt.cn?uname=zhangsan&readname=张三
alert(decodeURIComponent(str2));//http://www.bjsxt.cn?uname=zhangsan&readname=张三
//eval:一个非常强大有用的方法,可以将一个字符串转换为js代码。可以理解为一个
//非常强大的js代码解析器。
var str = "var a = 10; var b = 20;";
eval(str);//相当于定义了两个变量。
alert(a + b);//30
//eval 在数组中的使用。
str = "var arr = [1,2,3]";
eval(str);
alert(arr.length);//3
//eval 在对象中的使用
str = "{name:'张三',age:20}";
//将字符串转换为对象
var obj = eval("("+str+")");
alert(obj.name);//张三
//parseInt(string [,radix]):将字符串转换为整数。
// 参数:
// string:要被解析的值。如果参数不是一个字符串,则将其转换为字符串。字符串开头的空白符将会被忽略。
// radix:一个2到36之间的整数值,用于指定转换中采用的基数。
// 如果省略该参数或者为0,则数字将以 10 为基础来解析。
// 如果string以 “0x” 或 “0X” 开头,将以 16 为基数。
// 如果string以“0” 开头,在ECMA3中被认为是8进制;但是在ECMA5中已经强制规定此情况默认是10进制
// 如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
alert(parseInt("10")+1);//11
alert(parseInt("0x10")+1);//17
alert(parseInt("10b")+1);//11 特殊情形
alert(parseInt("a10b")+1);//NaN
alert(parseInt("11.1")+1);//12
alert(parseInt(true)+1);//NaN
//parseFloat:将字符串转换为浮点数。
alert(parseFloat("10")+1);//11
alert(parseInt("10b")+1);//11 特殊情形 从数字开始统计,直到非数字为止。
alert(parseFloat("a10b")+1);//NaN
alert(parseFloat("11.1")+1);//12.1
//isNaN():用来判断一个值不是数值类型,如果是返回false,如果不是返回true。
alert(isNaN(0));//false
alert(isNaN(NaN));//true
alert(isNaN("10"));//false
alert(isNaN(true))//false
alert(isNaN("10a"));//true
alert(isNaN("a10a"));//true
alert(isNaN("true"))//true
//补充
//在js中,NaN ,即非数值(Not a Number)是一个特殊的数值,
//这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。
//任何与NaN进行运算的结果均会为NaN,NaN与自身不相等(NaN不与任何值相等)。
//NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字
alert(NaN == NaN);//false
alert(NaN === NaN);//false
</script>
</head>
<body>
</body>
</html>
PS:笔者有大量的学习资料:java、python、大数据、人工智能、前端等。需要的小伙伴请加群:711408961
笔者的b站中有一些教学视频分享。感兴趣的小伙伴可以关注:https://space.bilibili.com/412362068