易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : javascript

Javascript变量作用域

请先看下题:
if(true)
{
     a = 1;
}
alert(a);  //输出啥?
if(true)
{
    var a = 1; 
}
alert(a);  //这又输出什么?
在firefox3.5下,第一个输出1;第二个输出undefined!!!
为啥呢?呵呵,本人在此班门弄斧一下:
一般情况下缺省var声明时,默认该变量为全局变量。了解这句话,所有问题也就迎刃而解了!呵呵!
第一道题:变量a缺省var声明,而直接使用,故而默认为全局变量,输出1
第二道题:变量a,在if块中var声明,属局部变量,输出undefined! ......

javascript arguments对象

在javascript函数体内,标识符arguments具有特殊含义。它是调用对象的一个特殊属性,用来引用Arguments对象。Arugments对象就像数组,注意这里只是像并不是哈。
javascript函数体内,arguments像数组(并不是真的数组,是一个Arguments对象,再次强调)一样,有length属性,可以代表传给函数的参数的个数。
引用一个形式参数可以用参数名,也可以用arguments[]数组形式,其中arguments[0]表示第一个参数。
所以,javascript中Arguments对象是函数的实际参数,下面,我们一起来进入这神奇的国度,一窥究竟。
arguments.length属性:
js不会主动为你判断你到底给函数传了多少个参数,如果你多传了,多余的部分就没有被使用,如果你少传了,那么没传的参数值就是undefined
所以我们可以借助arguments的length属性来检测调用函数时是否使用了正确数目的实际参数,因为javascript是不会为你做这些事的
function f(x,y,z)
{
    //首先检查传递的参数数量是否正确
    if(arguments.length != 3)
    {
        throw new Error("function f called with " + arguments.length + "argum ......

JavaScript中的JSON

 
JavaScript中的JSON
 
JavaScript是为网景浏览器做页面脚本语言而实现的一种编程语言。它现在还被很多人误解是java的子集。它是一种具有类C语法和弱对象的模式语言。JavaScript完全遵守ECMAScript语言说明书第三版。
JSON是JavaScript对象文字记号的子集。由于JSON是JavaSript的子集,所以在JavaScript里,可以方便的应该JSON。
var myJSONObject = {"bindings": [
        {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
        {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
        {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
    ]
};
在这个例子里面,创建一个单独的成员——“bindings”,这个成员里包含一个有三个对象——“ircEvent”, “method”和“regex”的对象数组。
数据可以用逗号(,)或者下标符,例:
myJSONObject.bindings[0].method  &nbs ......

asp.net注册Javascript的方法

1、IsStartupScriptRegistered:对象是否注册了启用脚本。
2、IsClientScriptBlockRegistered:对象是否注册了客户端脚本块。
3、IsClientScriptIncludeRegistered:对象是否注册了客户端脚本包含。
第一个例子:
string info = "<script>alert('你好吗?');</script>";
//判断事件是否被注册,写入区域:<body>----<script></body>
if (!Page.ClientScript.IsStartupScriptRegistered("test"))
{
//动态注册并执行Javascript
Page.ClientScript.RegisterStartupScript(this.GetType(), "test", info);
}
第二个例子:
aspx文件:
姓名:<input id="txtUserName" type="text" />
<input id="btnSubmit" type="button" value="确定" onclick="salert(txtUserName.value)" />
cs文件:
string info = "function salert(userName){alert('你的名字:' + userName)}";
//判断test是否已注册
if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "test"))
{
//动态注册Javascript
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "test", info, true);
} ......

asp.net注册Javascript的方法

1、IsStartupScriptRegistered:对象是否注册了启用脚本。
2、IsClientScriptBlockRegistered:对象是否注册了客户端脚本块。
3、IsClientScriptIncludeRegistered:对象是否注册了客户端脚本包含。
第一个例子:
string info = "<script>alert('你好吗?');</script>";
//判断事件是否被注册,写入区域:<body>----<script></body>
if (!Page.ClientScript.IsStartupScriptRegistered("test"))
{
//动态注册并执行Javascript
Page.ClientScript.RegisterStartupScript(this.GetType(), "test", info);
}
第二个例子:
aspx文件:
姓名:<input id="txtUserName" type="text" />
<input id="btnSubmit" type="button" value="确定" onclick="salert(txtUserName.value)" />
cs文件:
string info = "function salert(userName){alert('你的名字:' + userName)}";
//判断test是否已注册
if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "test"))
{
//动态注册Javascript
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "test", info, true);
} ......

javascript写类方式之二

2、原型方式
/**
* Person类:定义一个人,有个属性name,和一个getName方法
*/
function Person(){}
Person.prototype.name = "jack";
Person.prototype.getName = function() { return this.name;}

把类的属性(字段),方法都挂在prototype上。
造几个对象测试下:
var p1 = new Person();
var p2 = new Person();
console.log(p1.getName());//jack
console.log(p2.getName());//jack

可以看出输出的都是jack,所以原型方式的缺点就是不能通过参数来构造对象实例
(一般每个对象的属性是不相同的)
,优点是所有对象实例都共享getName方法(相对于构造函数方式),没有造成内存浪费
。 ......

javascript写类方式之三

取前面两种的优点:
a、用构造函数来定义类属性(字段)
b、用原型方式来定义类的方法。
就有了第三种方式。这种方式貌似采用的人较多。
3、综合构造函数/原型
/**
* Person类:定义一个人,有个属性name,和一个getName方法
* @param {String} name
*/
function Person(name) {
this.name = name;
}
Person.prototype.getName = function() {
return this.name;
}

这样,即可通过构造函数构造不同name的人,对象实例也都共享getName方法,不会造成内存浪费。
但似乎这样的代码风格似乎仍然没有java的类那么紧凑,把属性,构造方法(函数),方法都包在大括号内。
public class Person {
//属性(字段)
String name;
//构造方法(函数)
Person(String name) {
this.name = name;
}
//方法
String getName() {
return this.name;
}
}

为了让js代码风格更紧凑,把挂在prototype的方法代码移到function Person的大括号内。
function Person(name) {
this.name = name;
Person.prototype.getName = function() {
return this.name;
}
}

似乎很神奇,还能这么写啊!验证一下
var p1 = new Person(" ......
总记录数:2244; 总页数:374; 每页6 条; 首页 上一页 [36] [37] [38] [39] 40 [41] [42] [43] [44] [45]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号