javascript 王者归来
javascript不支持函数或方法的重载,只会覆盖
function add(number)
{
alert(number + 10);
}
function add(number)
{
alert(number + 20);
}
add(20); // 40
javascript中,函数就是对象,JavaScript中有个内置的对象Function
因为定义一个add方法时相对于
var add = new Function("number","alert('hello')");
var add = new Function("number","alert('world')");
所以后面的覆盖了前面的,所以没有重载
javascript是动态语言,不是编译语言,是解释语言
NaN not a number
函数中都有一个内置对象arguments
alert(add.length); //期望的参数长度
函数就是对象
JavaScript中有五种原始值:Undefined,Null,Boolean,Number,String
java中有8中基本数据类型:
byte b; 1字节
short s; 2字节
int i; 4字节
long l; 8字节
char c; 2字节(C语言中是1字节)
float f; 4字节
double d; 8字节
boolean bool; false/true
Undefined数据类型的值只有一个:undefined
var s;
alert(s); //undefined。
Null数据类型的值只有一个:null
alert(typeof null); //object
Boolean数据类型的值只有两个:true,false
typeof的返回值有五个:undefined,boolean,number,string,object
对于函数来说,如果其不返回值,那么其返回值就为undefined
function test()
{
alert("");
}
alert(test()); //undefined 没有返回值
alert(test); //打印函数的源代码
var s ;
alert(s); //undefined
alert(s2); //s2没有定义,报错
var s ;
alert(typeof s); //undefined
alert(typeof s2); //undefined
//null与undefined的关系: undefined实际上从null派生而来
alert(undefined == null)
javascript会出现内存泄漏,客户端内存泄漏。所以在函数中都要加入var,防止内存泄漏
强制转换有三种:Boolean(value),Number(value),String(value)
Object所有类的父类
o.name = "langsin";
delete o.name;
js的作用域(对于函数定义中的变量来说,加var表示局部变量,不加var表示全局变量在javascript中没有块级别的作用域)
function test()
{
s = "hello";
}
test();
alert(s); //hello
function test()
{
var s = "hello";
}
alert(s); // s没有定义,
//js的作用域
function f(props) {
for(var i=0; i<10; i++) {}
alert(i); //10 虽然i定义在for循环的控制语句中,但在函数
//的其他位置仍旧可以访问该变量.
if(props == "local") {
var sco = "local";
alert(sco);
}
alert(sco); //同样,函数仍可引用if语句内定义的变量
}
f("local"); //10 local local
var sco = "global";
function print1() {
alert(sco); //global
}
function print2() {
var sco = "local";
alert(sco); //local
}
function print3() {
alert(sco); //undefined
var sco = "local";
alert(sco); local
}
print1(); //global
print2(); //local
print3(); //undefined local
前面两个函数都很容易理解,关键是第三个:第一个alert语句并没有把全局变
量"global"显示出来,而是undefined,这是因为在print3函数中,我们定义了sco局部变量(不管位置在何处),那么全局的
sco属性在函数内部将不起作用,所以第一个alert中sco其实是局部sco变量,相当于:
function print3() {
var sco;
alert(sco);
sco = "local";
alert(sco);
}
从这个例子我们得出,在函数内部定义局部变量时,最好是在开头就把所需的变量定义好,以免出错。
var scope = "global" //定义全局变量
function print() {
alert(scope);
}
function change() {
var scope = "local"; //定义局部变量
print(); //虽然是在change函数的作用域内调用print函数,
//但是print函数执行时仍旧按照它定义时的作用域起作用
}
change(); //golbal
整理的比较乱
分享到:
相关推荐
幸而我有意弱化了对新信息的执念,开始做一些事情,《深入浅出ES6》就是其中一件。 纵观整个系列,亦即纵观ECMAScript 2015的整个体系,吸取了诸多成功经验:借鉴自CoffeeScript的箭头函数;始于C++项目Xanadu,接着...
全书从JavaScript语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax与Comet服务器端通信,HTML5表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨文档传递...
全书从 JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向 对象编程、Ajax 与 Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括 WebGL)及 Web Workers、 地理定位、...
作者深入浅出的描绘了javascript函数式语言的一系列特性,闭包,面向对象的各种实现以及弊端以及Javascript的2个大重要对象,函数和数组,认识它们真正的面目。 适合入门级别的新手观看来提升自己的对于Javascript的...
全书从 JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向 对象编程、Ajax 与 Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括 WebGL)及 Web Workers、 地理定位...
全书从JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax 与Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨...
全书从 JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向 对象编程、Ajax 与 Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括 WebGL)及 Web Workers、 地理定位...
JavaScript 语言实现的各个组成部分——语言核心、 DOM、 BOM、 事件模型讲起, 深入浅出地探讨了面向 对象编程、 Ajax 与 Comet 服务器端通信, HTML5 表单、 媒体、 Canvas(包括 WebGL) 及 Web Workers、 地理...
全书从JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax 与Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨...
JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向 对象编程、Ajax 与 Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括 WebGL)及 Web Workers、 地理定位、跨...
深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托...
本书作者是一位经验丰富的程序员,在书中使用了大量的、有一定使用价值的例子来深入浅出地讲解PHP语言及Web编程需要了解的方方面面。尤其值得注意的是,书中使用了多个“中场”章节,以便在学习过一定知识之后,通过...