我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript全局函数怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript全局函数怎么用

这篇文章将为大家详细讲解有关JavaScript全局函数怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、JavaScript全局函数有哪些?

函数描述
decodeURI()解码某个编码的 URI。
decodeURIComponent()解码一个编码的 URI 组件。
encodeURI()把字符串编码为 URI。
encodeURIComponent()把字符串编码为 URI 组件。
escape()对字符串进行编码。
eval()计算 JavaScript 字符串,并把它作为脚本代码来执行。
isFinite()检查某个值是否为有穷大的数。
isNaN()检查某个值是否是数字。
Number()把对象的值转换为数字。
parseFloat()解析一个字符串并返回一个浮点数。
parseInt()解析一个字符串并返回一个整数。
String()把对象的值转换为字符串。
unescape()对由 escape() 编码的字符串进行解码。

二、JavaScript全局函数详解?

2.1.Eval()

2.1.1.例子一

首先看示例:

eval("x=10;y=20;document.write(x*y)");document.write("<br>" + eval("2+2"));document.write("<br>" + eval(x+17));

结果:

200
4
27

特殊用法{}:

document.write("<br>" + eval{3+3}));

这时返回结果为:6 我们发现{}这样使用和()其实是一样的 不同在于:

//{}/2 这种写法是不支持的document.write("<br>" + eval{3+3}/2));//()是可以的document.write("<br>" + eval(3+3)/2));//若是{}也想进行此类计算也可以 如下:document.write("<br>" + eval{(3+3)/2}));

2.1.2.例子二

看一下在其他情况中,eval() 返回的结果:

eval("2+3")    // 返回 5var myeval = eval;    // 可能会抛出 EvalError 异常myeval("2+3");    // 可能会抛出 EvalError 异常

可以使用下面这段代码来检测 eval() 的参数是否合法:

try  {
  alert("Result:" + eval(prompt("Enter an expression:","")));}catch(exception) {
  alert(exception);}

2.1.3.例子三(解析JSON字符串)

2.1.3.1.eval解析函数:

JSON 不允许包含函数,但你可以将函数作为字符串存储,之后再将字符串转换为函数。

var text = '{ "name":"Runoob", "alexa":"function () {return 10000;}", "site":"www.runoob.com"}';var obj = JSON.parse(text);obj.alexa = eval("(" + obj.alexa + ")");
 document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();
2.1.3.2.JSON字符串转换为对象的两种方法
  //将JSON字符串转为JS对象的方法一
    var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');
    document.write(obj.name + "<br/>");
    //将JSON字符串转为JS对象的方法二
    //JSON格式的字符串
    var test1 = '{"name":"qlq","age":25}';
    var obj2 = eval("(" + test1 + ")"); //必须带圆括号
    document.write(obj2.name + "<br/>" + obj2.age);

结果:

runoob
qlq
25

为什么要 eval这里要添加 eval("(" + test1 + “)”)//”呢?

原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将 括号内的表达式(expression)转化为对象,而不是作为语 句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始 和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:

alert(eval("{}"); // return undefinedalert(eval("({})");// return object[Object]

对于这种写法,在JS中,可以到处看到。

如: (function()) {}(); 做闭包操作时等。

alert(dataObj.root.length);//输出root的子对象数量$.each(dataObj.root,fucntion(idx,item){if(idx==0){return true;}//输出每个root子对象的名称和值alert("name:"+item.name+",value:"+item.value);})

注:对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变。

2.1.3.3.对于服务器返回的JSON字符串,如果jquery异步请求将 type(一般为这个配置属性)设为"json",或者利 用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法:
$.getJSON("http://www.phpzixue.cn/",{param:"gaoyusi"},function(data){//此处返回的data已经是json对象//以下其他操作同第一种情况$.each(data.root,function(idx,item){if(idx==0){return true;//同countinue,返回false同break}alert("name:"+item.name+",value:"+item.value);});});

这里特别需要注意的是方式1中的eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采用一些规避了eval()的第三方客户端脚本库,比如JSON in JavaScript就提供了一个不超过3k的脚本库。

2.1.3.4.补充:eval()解析的JSON的key可以不带""

一般的JSON的key必须带双引号,也就是类似于{"key":"vslue"}的形式,但是如果用eval("("+json+")")的形式解析字符串为JSON的时候,json可以写为{key:"value"}

2.2.decodeURI()与 decodeURIComponent() – 解码函数

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

如:

 const aaa = '#$ ¥%23ccc/'
  
  console.log(encodeURI(aaa));	// #$%20%EF%BF%A5%2523ccc/
  console.log(decodeURI(aaa));	// #$ ¥%23ccc/
  console.log(encodeURIComponent(aaa));	// %23%24%20%EF%BF%A5%2523ccc%2F
  console.log(decodeURIComponent(aaa));	// #$ ¥#ccc/

我们在获取地址栏参数是通常封装成如下函数:

export function getQueryObject(url) {
  url = url || window.location.href  const search = url.substring(url.lastIndexOf('?') + 1)
  const obj = {}
  const reg = /([^?&=]+)=([^?&=]*)/g
  search.replace(reg, (rs, $1, $2) => {
    const name = decodeURIComponent($1)
    let val = decodeURIComponent($2)
    val = String(val)
    obj[name] = val    return rs  })
  return obj}

2.3.encodeURI()与encodeURIComponent() — 编码函数

encodeURI():
语法

encodeURI(URIstring)
参数 描述
URIstring 必需。一个字符串,含有 URI 或其他要编码的文本。
返回值
URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
说明
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( ) 。
该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?: @&=+$,#

encodeURIComponent() :

语法
encodeURIComponent(URIstring)
参数 描述
URIstring 必需。一个字符串,含有 URI 组件或其他要编码的文本。
返回值
URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
说明
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( ) 。
其他字符(比如 :;/?

关于“JavaScript全局函数怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript全局函数怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

laravel怎么创建全局函数

本篇内容介绍了“laravel怎么创建全局函数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言一直觉得ThinPHP中的公共函数是一个很好
2023-07-04

PHP全局变量怎么在函数中调用

这篇文章主要讲解了“PHP全局变量怎么在函数中调用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP全局变量怎么在函数中调用”吧!在介绍函数内部调用全局变量方法之前,我们来了解一下变量作用
2023-06-20

python怎么在函数中调用全局变量

在Python中,如果要在函数中调用全局变量,可以使用`global`关键字将变量声明为全局变量。下面是一个示例:```pythonx = 10def my_function():global xprint(x) # 输出全局变量x的值m
2023-09-25

javascript怎么改变全局变量

JavaScript是一种基于对象的动态语言,灵活性高、易学易用,被广泛应用于网页开发、游戏开发、移动应用开发等领域。其中,全局变量(global variable)是JS编程中最常用的一种变量类型,其值可以被程序的任何代码所访问和修改。在本文中,我们将讨论JavaScript中如何改变全局变量。一、全局变量的定义在JavaScript中,通过var关键字或者直接赋值(未加va
2023-05-14

JavaScript函数怎么用

小编给大家分享一下JavaScript函数怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JavaScript 函数  函数为程序设计人员提供了一个丰常方便的
2023-06-03

C++中如何使用全局函数

今天就跟大家聊聊有关C++中如何使用全局函数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1 类的特化和类成员函数的特化template< typename T> class Wid
2023-06-17

php全局变量在函数内不能使用怎么办

在PHP中,全局变量无法在函数内直接使用。解决此问题的方法有:使用global关键字声明全局变量。通过$GLOBALS数组访问全局变量。使用静态变量保持函数内变量值。使用闭包访问父函数作用域中的变量。
php全局变量在函数内不能使用怎么办
2024-04-25

php全局变量在函数内不能使用怎么办

解决方法:1、利用global关键字在函数内导入全局变量,语法“global 全局变量1, 全局变量2, ...”;2、利用超全局变量“$GLOBALS”访问指定全局变量,语法“$GLOBALS['全局变量名']”。
2018-03-28

JavaScript函数怎么调用

这篇文章主要介绍“JavaScript函数怎么调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript函数怎么调用”文章能帮助大家解决问题。函数:函数分类:自定义函数和系统函数常用系统
2023-06-27

javascript怎么调用函数

这篇文章给大家分享的是有关javascript怎么调用函数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。javascript的调用函数方法有:1、使用makeArray函数作为它的一个方法,使用json的方式来声
2023-06-14

编程热搜

目录