javascipt对象

   Jscript 对象是属性和方法的集合。一个方法就是一个函数,是对象的成员。属性是一个值或一组值(以数组或对象的形式),是对象的成员。Jscript 支持四种类型的对象:内部对象、生成的对象(创建自己的对象)、宿主给出的对象(如 Internet 浏览器中的 window 和 document)以及 ActiveX 对象(外部组件)。

Jscript 有三种主要数据类型、两种复合数据类型和两种特殊数据类型。

主要(基本)数据类型是:

字符串 String对象
数值  Number 对象
布尔  Boolean 对象

复合(引用)数据类型是:

对象
数组
特殊数据类型是:

Null
Undefined
javascript和java一样,是通过 new 来创建对象,不同在于所有的对象都是通过 var 来声明,javasccript的基本类型对象很少方法显示调用对象。

 


String 对象可用字符串文字显式创建。用这种方法创建的 String 对象(指以标准字符串形式)与用 new 运算符创建的 String 对象处理上不同。所有字符串文字共享公用的全局字符串对象。如果为字符串文字添加属性,则它对所有标准字符串对象都是可用的:

var alpha, beta;
alpha = "这是一个字符串";
beta = "这也是一个字符串";

alpha.test = 10;
在前一示例中,这时为 beta 和所有将来的字符串定义 test。然而,在下面的例子中,被添加属性的处理略有不同:

var gamma, delta;
gamma = new String("这是一个字符串");
delta = new String("这是也一个字符串");

gamma.test = 10;
在这种情况下,不为 delta 定义 test。每个用 new String 声明的 String 对象有其自己的一组成员。这是对 String 对象和字符串文字的处理不同的唯一情况。

javascript 脚本 中创建数组: Array :数组、队列
 var a=new Array(10);
for(var i=0;i<a.length;i++){
        a[i]=i;
    document.write("a[i]"= + a[i]);
}

java 中创建数组

定义并初始化方法一:
String[] a = new String[3];
a[0] = "a";
a[1] = "b";
a[2] = "c";

定义并初始化方法二:
String[] b = new String[]{"a","b","c"};

 

 

null 是一个值,或属性不存在。undefined 声明了变量但没有赋值,或对象属性不存在。
当为属性不存在是,null==undefined 比较结果为true;
null===undefined 为 false;

Null 数据类型
在 Jscript 中数据类型 null 只有一个值:null。关键字 null 不能用作函数或变量的名称。

包含 null 的变量包含“无值”或“无对象”。换句话说,该变量没有保存有效的数、字符串、Boolean、数组或对象。可以通过给一个变量赋 null 值来清除变量的内容。

请注意,在 Jscript 中,null 与 0 不相等(与在 C 和 C++ 中不同)。同时应该指出的是,Jscript中 typeof 运算符将报告 null 值为 Object 类型,而非类型 null。这点潜在的混淆是为了向下兼容。

Undefined 数据类型
如下情况使返回 undefined 值:

对象属性不存在,
声明了变量但从未赋值。
注意不能通过与 undefined 做比较来测试一个变量是否存在,虽然可以检查它的类型是否为“undefined”。在以下的代码范例中,假设程序员想测试是否已经声明变量 x :

// 这种方法不起作用
if (x == undefined)
    // 作某些操作

// 这个方法同样不起作用- 必须检查
// 字符串 "undefined"
if (typeof(x) == undefined)
    // 作某些操作

// 这个方法有效
if (typeof(x) == "undefined")
    // 作某些操作
考虑将 undefined 值与null做比较。

someObject.prop == null;
如下情况时,比较的结果为 true,

如果属性 someObject.prop 包含 null 值,
如果属性 someObject.prop 不存在。
要检查一个对象属性是否存在,可以使用新的 in 运算符:

if ("prop" in someObject)
    // someObject 有属性 'prop'

 

typeof(x)  返回一个用来表示表达式的数据类型的字符串。in  测试对象中是否存在该属性。
if ("prop" in someObject)
    // someObject 有属性 'prop'
delete expression 从对象中删除一个属性,或从数组中删除一个元素。
expression 参数是一个有效的 JScript 表达式,通常是一个属性名或数组元素。

 

<html>
<head><title></title>
</head>
<body>
</body>
</html>
<script type="text/javascript">
String.prototype.trim = function()
{
    // 用正则表达式将前后空格
    // 用空字符串替代。
    return this.replace(/(^/s*)|(/s*$)/g, "");
}

// 有空格的字符串
var s = "    leading and trailing spaces    ";

document.write(s + " (" + s.length + ")" );

// 删除前后空格
s = s.trim();
// 显示"leading and trailing spaces (27)"
document.write(s + " (" + s.length + ")" +"|");
var s2="   we will not get quert into the night    "
document.write(s2.trim() +"|");


function pasta(grain, width, shape, hasEgg)
{

    this.grain = grain;
    this.width = width;    
    this.shape = shape;  
    this.hasEgg = hasEgg; 
}
var spaghetti = new pasta("wheat", 0.2, "circle", true);
var linguine = new pasta("wheat", 0.3, "oval", true);
spaghetti.color = "pale straw";
linguine.color=null;
//null 和undefined 的比较
if (typeof(linguine.color) == "undefined"){
        alert("linguine 的color 属性不存在,与undefined 相等!");
        alert(linguine.color==null);
        alert(linguine.color===null);
}
alert("color" in linguine)
alert(spaghetti.color);
alert(linguine.color);


pasta.prototype.foodgroup = "carbohydrates";


//alert(spaghetti.foodgroup);
//alert(linguine.foodgroup);

/*@cc_on @*/
/*@if (@_jscript_version >= 4)
   //alert("JScript version 4 or better");
   //alert(@_win32);
   @else @*/
   alert("You need a more recent script engine.");
/*@end @*/
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值