js小结:函数&变量
来源:互联网 发布:阿里妈妈解绑淘宝账号 编辑:程序博客网 时间:2024/06/06 14:07
函数声明
// 普通函数声明function f(){ //}// 通过变量初始化var f = function(){ //}// 构造函数初始化函数(请忘记它吧)var t = new Function('x', 'y', 'alert(x+y)')
传递函数
function sum(a, b){ return a+b; }function sub(a, b){ return a-b; }function box(a, b, fun){ return fun(a, b); }console.log(box(1, 2, sum))console.log(box(1, 2, sub))
函数的属性(函数是对象)
- length:函数接受参数的个数
- prototype:函数原型
function f(a, b){ }console.log(f.length); // 2
函数内部属性
- arguments: 对象,用来保存参数。此对象拥有一个名叫callee的属性,这属性是一个指针,指向函数本身。
- this: 指向函数所属的对象,全局函数的this是window
用法
// 阶乘function jie1(num){ if(num <= 1) return 1; else return num * jie1(num-1); }function jie2(num){ if(num <= 1) return 1; else return num * arguments.callee(num-1); }console.log(jie1(5)) // 120console.log(jie2(5)) // 120// 如果在函数内部有着很多的自身调用,如果想改变改变函数名...
window对象(全局this)
最外围对象,所有的js对象都在其下面
// 全局变量,自动挂载到window对象上,成为其一个属性var color = 'red';console.log(window.color)console.log(window); // 在控制台打印出来的window对象中可以找到color属性//全局函数,自动挂载到window对象上var f = function(){ //... }// 全局this全局的this就是window对象的指针,和使用window一样比如: this.color; this.f(); console.log(this); console.log(this === window); // true 说明this就是window
变量
变量分类
基本类型(保存在栈内存)
- Number
- Boolean
- String
引用类型(保存在堆内存)
- Object
特殊类型
- null
- undefined
变量访问
- 值访问
- 引用访问
参数传递
虽然变量分为基本类型和引用类型,但是参数的传递均是按值传递。(困惑?)
// 比较困惑的应该是传递对象吧// 传递的参数的类型可分为:基本类型,引用// 这里所说的均是按值传递(传递基本类型时不解释),// 当传递引用时引用是按值传递的,也就是说函数参数// 的那个引用和外部的引用已经没有任何联系了,在函数// 内部改变引用不会对外部引用造成影响,但是,形参的// 引用与外部引用指向同一个对象。java也是这样。还有// 一点就是我感觉自己好啰嗦。function changeName(m){ var p = {name:'Peter'}; m = p; }changeName(man);console.log(man.name); // Tom
类型检测
- typeof
- instanceof(当使用instanceof 检查基本类型的值时,它会返回false)
块级作用域
块级作用域? 对不起,没有
// if 语句代码块没有局部作用域if (true) { var box = 'Lee'; }alert(box);// for没有局部作用域for (var i = 0; i < 10; i ++) { var box = 'Lee'; }alert(i);alert(box);
var关键字
在函数内部,如果使用var,变量就是函数局部变量,否则就是全局变量
0 0
- js小结:函数&变量
- 函数返回局部变量小结
- js的函数变量
- js 变量、函数提升
- JS函数 ,变量
- js 字符串操作函数小结。
- JS 字符串操作函数小结
- js 函数调用模式小结
- 静态成员变量和成员函数小结
- js函数变量声明提升
- JS变量和函数提升
- js 判断js函数、变量是否存在
- js 判断js函数、变量是否存在
- js 判断js函数、变量是否存在
- js 判断js函数、变量是否存在
- JS中自动执行函数小结
- js 格式化时间日期函数小结
- js 格式化时间日期函数小结
- Guava之Objects
- 【一天一道LeetCode】#69. Sqrt(x)
- js 检测flash 版本
- 函数配接器
- nyoj 28 大数阶乘
- js小结:函数&变量
- c++ primer 第五版 StrBlob类(p404)
- 《java入门第一季》之tcp协议下的编程实现键盘录入数据不断地往服务器端发送数据案例
- android 优化总结
- Duilib学习笔记《06》— 窗体基类WindowImpBase
- 构建支持registry v2的shipyard的镜像
- FZU 2168
- 第12周项目1-实现复数类中的运算符重载-3
- OAuth2.0授权方式