JavaScript入门

JavaScript的基本语法和C以及Java非常相似,下面介绍JavaScript比较特殊的地方。

一、变量声明
JavaScript语言是动态类型,创建JavaScript变量不需要声明类型(这点几乎所有脚本语言都一样)。但创建JavaScript变量需要在变量前加上var。
var n = 20;

二、对象创建
var empty_object = {};
var stooge = {'first-name': 'Jerome', last_name: "Howard"};
如果属性名是合法标识符,可以不加引号。
获得对象属性值有两种方式。
stooge['first-name’];
stooge.last_name;
如果对象没有该属性,则返回值为undefined
每个对象都有原型(prototype),直接创建的字面对象连接到Object.prototype。

三、foreach语法
foreach用于数组时,将遍历数组下标。
foreach用于对象时,将遍历对象属性。
for(x in [6,6,6,6,]) {
     console.log(x); // document.writeln(x);
} // 将输出 0 1 2 3
for(x in stooge) {
     console.log(x);
} // 将输出 first-name last_name

四、delete
delete用于删除对象属性。
delete stooge['first-name'];
delete stooge.last_name;

五、函数
var add = function(a, b) {return a+b;};
函数中可以直接使用arguments和this。
arguments是参数数组。
当函数为对象属性时,this绑定到对象上。
当函数不是对象属性时,this绑定到全局变量。
函数还可以用apply调用:
add.apply(null, [2, 3]); // 结果为 5
Function.apply(a, b)其中a绑定到this,b是参数数组。

六、构造函数
如果在函数前面带new调用,将创建一个新对象,该对象连接到函数的prototype,函数和prototype的方法中,this都绑定到这个新对象。
Function.prototype.method = function(name,  fun) {
     this.prototype[name] = fun;
     return this;
};
Number.method('integer', function() {
     return Math[this < 0 ? 'ceiling', 'floor'](this);
});
console.log((-10/3).integer();
在执行过程中,Function中的this为Number,Number中的this为(-0.3333)。

七、作用域
JavaScript有函数作用域,但没有块级作用域。
内部函数可以访问外部函数的参量和变量,除了this和arguments。
var add_the_handlers = function(nodes) {
     var i;
     for(i=0; i<nodes.length; i+=1) {
          nodes[i].onclick = function(i) {
               return function(e) {  alert(i); };
          }(i);
     }
};
如果你只写node[i].onclick = function(e) { alert(i); };
由于内部函数并不会复制外部函数中的变量,导致最后运行时所有的i都为nodes.length。

八、正则表达式
reg = /(\d+)([a-zA-Z]+)/;
reg.exec('abc123def456');
如果不能匹配将返回null。
还可以用test:
reg.test('abc123def456');
如果成功匹配将返回true,否则返回false。
另外string.match几乎和exec相似。
'abc123def456'.match(reg);
string.replace还可以替换字符串:
'abc123def456'.replace(reg, '’); // 将得到 abc456
'abc123def456'.replace(reg, function(a,b,c,d,e) { return 'A'; }); // 将得到 abcA456
function的参数,依次对应为reg.exec('abc123def456’)结果里的每一项。
另外reg后面可以加g、i、m
reg = /(\d+)([a-zA-Z]+)/gim;
G表示全局,I表示大小写不明感,M表示多行。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值