Function-JS

函数表达式可以包含名称,例:

var f=function factorial(x){if(x<=1)return 1;else return x*factorial(x-1);}

中,factorial这个函数对象的名称包含在函数作用域中,成为该函数的局部变量。

函数声明与函数字面量创建函数最大的不同是:函数声明会提前预加载,即函数声明语句被提前到外部脚本或外部函数作用域的顶部。同样以var 定义的变量也会预加载。

预加载:JS代码在运行前都要进行预加载,目的是事先构造运行环境例如全局环境、函数运行环境、构造作用域链,而环境和作用域的构造的核心内容就是指定好变量属于哪个范畴,因此在JS中变量的定义是在预加载完成而非在运行期间。

函数中的参数分别形参和实参,形参可以想像成保存在函数的内部,即与函数一起保存在堆中,而实参则保存在栈中,形参与实参的引用是对实参值的复制,如果实参是对像,则是对实参值即指向地址的复制。

 function testFtn(sNm,pObj){

        console.log(sNm);// 运行结果:new Name

        console.log(pObj.oName);// 运行结果:new obj

        sNm = "change name";

        pObj.oName = "change obj";

    }

    var sNm = "new Name";

    var pObj = {oName:"new obj"};

    testFtn(sNm,pObj);

    console.log(sNm);// 运行结果:new Name

    console.log(pObj.oName);// 运行结果:change obj
复制代码

函数包含在()内表示立即调用??如何调用??

1

时间: 2024-12-23 15:09:07

Function-JS的相关文章

JS初步学习

[使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): <button onclick="javascript:alert('小碧池!你真点啊!')">有本事点我呀!!!</button> 2.HTML页面中直接使用JS: <script type="text/javascript"> //JS代码 </script> 3.引用外部JS文件: <script language="JavaSc

利用Node 搭配uglify-js压缩js文件,批量下载图片到本地

Node的便民技巧-- 压缩代码 下载图片 压缩代码 相信很多前端的同学都会在上线前压缩JS代码,现在的Gulp Webpack Grunt......都能轻松实现.但问题来了,这些都不会,难道就要面对几十个JS文件一遍遍来回“复制-压缩-创建-粘贴”,这样太不人性化了. 于是可以借助Node + uglify-js 轻松实现.(前提你会点node操作) 1.首先看一下目录: |--uglifyJS |--js |--test1.js |--test2.js |--uglify.js   //这

JS可维护性代码

最近在看一本Js的书名叫“Javascript高级程序设计”在里面学到了很多东西,是一本不错的书,非常值得一看. 解耦css/javascript element.style.color="red"; element.style.backgroundColor="blue"; 以上方式css和javascript的太过于紧密:我们应写成: element.className="edit"; css样式和js代码完全分离. 再次优化: var cs

JS基础与循环

JS 简介 [JS的三种方式] 1.HTML标签中内嵌JS <button onclick="javascript:alert('白痴')">呵呵呵</button> 2.HTML页面中直接使用JS <script type="text/javascript"> //JS代码 </script> 3.引用外部JS文件 <script language="JavaScript" src=&quo

JS基础变量、运算符和分支结构

[使用JS的三种方式]   1.HTML标签中内嵌JS(不提倡使用):   <button onclick="javascript:alert('小婊子,真点啊!')">有本事点我呀</button>   2.HTML页面中直接使用JS:   <script type="text/javascript">   //JS代码  </script>   3.引用外部JS文件:   <script language=&

JS笔记—02

1.String截取:substr:截几位, substring:截到哪. 2.String的操作,例如变大写,小写,本身不会变,只是在栈里交换引用似的 var str = "hello world";    var str5 = str.toUpperCase();    document.write(str5); str不会变,变得失str5而已 3.String替换时(/正则表达式(固定的表达式)/, "目的字符串"):"wodemamawoaini

gulpfile.js demo

var config = require("./build.config") //获取build.config.js文件里的内容 var gulp = require("gulp") //获取gulp模块 var sass = require('gulp-sass'); //gulp-sass模块是用于把sass转成cssvar path = require("path")var babel = require("gulp-babel&

js初步用法

js js引入方式:  1.方式一   通过script标签引入 2.方式二   通过script标签引入 ,src属性 引入一个外部的js文件 注意: 如果你使用了script标签的src属性 那么在其标签体内的js代码不起作用了语法: 1.ECMAScript语法规范  livescript 2.BOM浏览器对象模型   3.DOM文档对象模型   1.变量定义:  var i=1;  var m;  js中也有注释一说:   单行注释//   多行注释 /**/  语句结束分号结尾 可以不

js技术1-js简介和变量

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>JavaScript简介</title> <!-- 作者:[email protected] 时间:2017-03-28 描述:使用JS的三种方式: 1.html标签中内嵌js <button onclick="javascript:alert('你真点我啊')"&g

JS 预解释相关理解

1.JS中的内存空间分为两种:栈内存.堆内存 栈内存:提供JS代码执行的环境;存储基本数据类型的值; ->全局作用域或者私有的作用域其实都是栈内存 堆内存:存储引用数据类型的值(对象是把属性名和属性值存储进去,函数是把函数体中的代码当做字符串存储进去) 2.当浏览器加载我们HTML页面的时候,首先会提供一个供JS代码执行的环境->全局作用域(global->window) 3.在JS代码执行之前,浏览器还需要自己做一些事情:把所有带var/function关键字的进行提前的声明或者定义