js 里面的 function 与 Function

摘要:
函数是js的标识符。函数是js中的构造函数。1.newfunction和newfunction的区别。js中的新运算符是使用构造函数//2创建自定义对象的实例或本地对象的实例。因此,在整个运算是表达式运算,并且第一个子表达式是函数的条件下,获得以下表达式//2。在正常操作//3期间,不会报告任何错误。因此,以下写作方法也是正确的!

function 是 js 的标识符

Function 是 js 里面的一个 构造函数

1、new function 与 new Function 的区别

  new 运算符在 js 里面是 创建一个自定义的对象的实例 或者是 一个具有构造函数的本地对象的实例。

    语法:new constructor [ ( [ arguments ] ) ]

  new function() {......} 初始化一个可操作对象,相当于 new function 匿名函数() {......}

  js 里面的 function 与 Function第1张

  new Function('参数', '函数体') 是实例化一个函数,相当于 function 函数名() {......}

  js 里面的 function 与 Function第2张

2、立即执行函数 ( function(){...} () ) 和 ( function(){...} )()

// 1、
// 定义一个命名函数 a 并调用,正常运行
function a(){}a()
// 2、
// 2 假设使用匿名函数的方式呢?
function (){}() 
//这种方式会报错:Uncaught SyntaxError: Unexpected token (
// 3、
//按到如上思路测试,寻找 2 报错的原因
function () {}
// 3 会报错,与 2 报错相同:Uncaught SyntaxError: Unexpected token (
// 4、
();
// 4 会报错:Uncaught SyntaxError: Unexpected token )
// 5、
(1);
// 5 不会报错正常运行
// 6、
(function(){});
// 6 不会报错正常运行

可以看出,上述现象报错的原因都是:语法错误。究其原因发现是因为 ()运算符 的优先级高于 函数调用,而 () 运算符的括号内必须有表达式,否则就会有语法错误。

因此可以用 (function(){})() 的形式定义一个自调用的匿名函数

//1、
(1+2)(5+6);
//在进行如上表达式运算的时候,会报错:Uncaught TypeError: 3 is not a function,也就是说如果第一个表达式是一个 function 的话,就会正常运行。
//2、所以在保证整个运算为表达式运算的情况下,第一个子表达式为 function,则得出如下写法
(function(){}());
// 2 正常运行不会报错
// 3、因此可以得出如下写法也都是正确的
!function(){};
+function(){};
-function(){};
~function(){};
......

免责声明:文章转载自《js 里面的 function 与 Function》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇微信小程序,前端大梦想(四)Borland C++ 语法摘要下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

前端学习(40)~js学习(十七):数组的常见方法&数组的遍历

前言 数组的四个基本方法如下:(数组元素的添加和删除) 方法 描述 备注 push() 向数组的最后面插入一个或多个元素,返回结果为该数组新的长度 会改变原数组 pop() 删除数组中的最后一个元素,返回结果为被删除的元素 会改变原数组 unshift() 在数组最前面插入一个或多个元素,返回结果为该数组新的长度 会改变原数组 shi...

uglifyjs压缩批处理

uglifyjs. 据说是用来压缩JS文件的,据说还能优化JS,据说是基于node的,还据说比Google Closure Compiler更带感。 uglifyjs压缩批处理我们不可能每次都打开cmd去键入压缩执行代码,容易写错不说(如上面那个结果图),还耗时,想想都会让人疯掉。懒人有懒法,花了点功夫,折腾了一个批处理文件,以后,想要压缩JS,只要双击运...

React Native使用 DeviceEventEmitter发送通知emit和监听接收addListener的用法

js 向 js 发送数据 DeviceEventEmitter.emit('自定义名称',发送数据);   例:边看边买退出登录之后,我的淘宝和详情页的钱包数据应该改变。这时,我们可以在退出登录请求返回退出登录成功时发送一个通知     userInfo.userLogout((success) => {   if (success) {    ...

iframe中插入代码并执行

最近有需求通过iframe插入代码。有蛮多方法,如下: 1 var iframe = document.getElementById('previewUrl'); 2 iframe.src = 'about:blank'; 3 iframe.contentWindow.document.body.innerHTML+="12312" 4 iframe.co...

js实现生成PDF文件的方案

  前段时间做vue管理端的项目,遇到这样的需求:需要前端来生成PDF文件。查找了相关的资料大致有这样的几种方案: 1.通过window.print()方法,打印当前窗口的内容。 2.通过两个插件实现,jspdf + html2canvas,本文着重说一下第二种用法。   工欲善其事必先利其器,首先我们在项目安装一下这两个插件。    npm instal...

js实现代彩色文字的下落

<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>闪烁</title></head><style> *{margin:0}/* 解决兼容性问题   ...