javascript基本语法总结


一、概括

javascript是浏览器的广泛支持的脚本语言,接收用户事件,处理web文档内容。下文没有提到的基本语法要素基本与c语言相同。

二、词法结构

  2.1、支持unicode。

  2.2、大小写敏感,忽略空白符,和C++兼容的注释。

  2.3、不同行代码之间的分号是可选的。

  2.4、标识符开头可以是$,字母,下划线。

三、基本数据类型

  js是动态语言,数据类型是动态推定的。

  3.1、数字类型

  3.2、字符串,单引号字符串和双引号字符串

  3.3、BOOL类型,true 和 false

  3.4、NULL

  3.5、undefined

四、变量定义

  4.1、变量用var定义

  4.2、变量作用域范围是函数,没有类似与C语言的块级作用域

五、表达式和运算符

  5.1、>> 算术右移,>>> 逻辑右移

  5.2、===,!== 不进行类型转换强类型对象的相等性判断。

六、语句

  6.1、for(var in array){}

  6.2、try{throw;}catch(e){}finnally{}

  6.3、with语句临时改变名称空间。

七、函数

js中的函数是非常灵活的,既支持函数式编程,也和对象的生成有这紧密的联系。

  7.1、普通的函数定义

function add(x,y)
{
    return (x+y);
}

  7.2、js的函数是可以嵌套的,可以把js函数看成是一个特殊的语句块,可以出现在程序的其他函数或者语句之中。

function fun1()
{
	var str1="string in fun1";
	fun2(); //嵌套在函数里的函数可以在外围函数中任意位置调用
	function fun2()
	{
		var str2="string in fun2";
		fun3();
		function fun3()
		{
			var str3="string in fun3";
			alert(str1);//里层函数外围函数变量的访问权--闭包
			if(2 > 1)
			{
				function fun_in_if()
				{
					alert("function in if");
				}
				fun_in_if(); //在语句里建立的函数只能在函数定义位置后对其调用
			}
		}
	}
}

  7.3、匿名函数

var f1=function(){alert("anonymous function!")};
var f2=new Function("x","alert(x);"); //最后一个为函数体

f1();
f2(100);

八、对象

  8.1、js中的对象就是hash(属性与值的映射)

var obj1={};//空对象
var obj2={"first":2,"second":2,"third":3};
alert(obj2["first"]);
alert(obj2.third);
for(var1 in obj2)
{
	alert(var1);
}

  8.2、函数当做构造函数

每个函数被调用时,都会默认传入一个this应用,函数可以对这个对象的引用this进行操作,当用new调用这个函数时就会产生一个对象,当然也可以用return返回其他对象。

function person(age,country)
{
	this.age=age;
	this.country=country;
	
	p2={"age":31,country:"japan"};
	return p2; //如果没有return,则返回this。
}

var p1=new person(28,"justsong");

alert(p1.age);
alert(p1.country);

  8.3、函数的this参数

function person(age,country)
{
	this.age=age;
	this.country=country;
}

var p1=new person(28,"justsong");

alert(p1.age);
alert(p1.country);

person.call(p1,31,"japan"); //修改年龄和国籍,通过call把对象引用传递给this

alert(p1.age);
alert(p1.country);

  8.4、原型继承

js中的对象不是建立在类的基础上的,不是现有类后有对象,而继承的机制也是通过直接继承对象来实现的。

var obj1={"first":1,"second":2};	
	
function createobj(age,country)
{
	this.age=age;
	this.country=country;
}

createobj.prototype=obj1; //实现继承

var obj2=new createobj(28,"china");

alert(obj2.age);
alert(obj2.second);

优质内容筛选与推荐>>
1、JAVA生成验证码
2、sim usim Uim 区别
3、javascript之反柯里化(uncurrying)
4、Fully developed cement offer machine good market
5、DynamicEntity


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn