zoukankan      html  css  js  c++  java
  • JavaScript基础知识点记录

    Javascript参考手册

    一、JavaScript是一种在浏览器执行的语言。

    二、JavaScript与Java没有直接关系,有时被简称为JS。

    三、JavaScript是解释型语言,无须编译就可以随时运行。哪怕有部分语法有错误,没有语法错误的部分还是能正确运行。

    区别:C#是一门编译型语言,必须编译成exe或dll后才能运行,如果代码中有语法错误就不能编译通过。

    四、JavaScript使用方式

    • 嵌入页面中

    列如:

    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">
    	alert(new Date().toLocaleDateString());
    </script>
    </head>  
    

    可以嵌入页面中的任意位置。注意执行顺序,从上至下。

    • 外部引用(好处:多页面共享、减小网络流量)

    例如:

    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script  src="common.js" type="text/javascript"></script>	
    </head>
    

    五、事件

    例如:

    <body>
    <input type="button" value="点" onclick="alert('hello')"/>	
    <!--交由javascript引擎处理-->
    <a href="javascript:alert('hello')">点点</a>
    <!--先触发click事件再导向页面1.html-->
    <a href="1.html" onclick="alert('hello')">点点</a>
    </body>
    

    注意:只有超链接的href中的javascript中才需要加”javascript:“,因为它不是事件,而是把”javascript:“看成像”http:“、”ftp:“、”thunder://“、”ed2k://“、”mailto:“一样的网络协议,交由js解析引擎处理。只有href中这是一个特例。

    六、变量

    • javascript中即可以使用双引号声明字符串,也可以使用单引号声明字符串。主要是为了方便和html集成,避免转义符的麻烦。

    • javascript中有null、undefined两种,null表示变量的值为空,undefined则表示变量还没有指向任何对象,未初始化。两者的区别参考资料

    • javascript是弱类型,声明变量的时候无法: int i=0;只能通过var i=0;声明变量,和C#中的var不一样,不是C#中那样的类型推断。

    • javascript中也可以不用var声明变量,直接用,这样的变量是”全局变量“,因此除非确实想用全局变量,否则使用的时候最好加上var。

    • javascript是动态类型的,因此var i=0;i="abc";是合法的。然而C#中不能这样写。

    • 判断变量是否初始化的三种方法

    例如:

    <script  type="text/javascript">
    var x;
    if (x==null) 
    {
    	alert("null");
    }
    if (typeof(x)=="undefined")
     {
     	alert("undefined");
     }
     <!--推荐使用的方法-->
     if (!x) 
     {
     	alert("非x");
     }
    </script>	
    

    :if(x){}的意思:变量被初始化了或者变量不为空或者变量不为0。

    七、函数

    • 不需要声明返回值类型、参数类型,函数定义以function开头。

    例如:

    <script  type="text/javascript">
    <!--声明-->
    function add(i1,i2){
    	return i1+i2;
    }
    var i3=add(1,2);//使用
    alert(i3);
    </script>	
    
    • javascript中不像C#中那样要求所有路径都有返回值。

    例如:

    <script  type="text/javascript">
    <!--声明-->
    function add(i1,i2){
    	if (i1>i2) {
    	return i1+i2;	
    }		
    }
    var i3=add(1,2);//使用
    alert(i3);//输出:undefined
    </script>	
    
    • 匿名函数

    类似于C#中的匿名函数。(匿名函数的用法在JQuery中非常多)。
    例如:

    <script  type="text/javascript">
    <!--声明-->
    var f1=function(i1,i2){return i1+i2;};
    var i3=f1(1,2);//使用
    alert(i3);
    <!--直接使用匿名函数-->
    alert(function(i1,i2){return i1+i2;}(1,2));
    </script>	
    

    八、面向对象基础

    • javascript中没有类的语法,是用函数闭包(closure)模拟出来的。javascript中String、Date等”类“都被叫做”对象“。javascript中声明的类(类不是类,是对象)。

    例如:

    <script  type="text/javascript">
    <!--使用函数模拟类-->
    function Person(name,age){
    	this.Name=name;
    	this.Age=age;
    	this.SayHello=function(){
    		alert("my name is "+this.Name+" age is"+this.Age)};
    }
    <!--初始化对象-->
    var p1=new Person("tom",28);
    <!--调用SayHello方法-->
    p1.SayHello();  
    </script>  
    

    九、Array对象

    • javascript中的Array对象就是数组,它是一个动态数组,无需预先预定大小。

    例如:

    <script  type="text/javascript">
    var names=new Array();
    names[0]="tom";
    names[1]="lily";
    names[2]="jerry";
    for (var i = names.length - 1; i >= 0; i--) {
    	alert(names[i]);
    };
    </script>	
    
    • javascript中的Array是一个宝贝,它不仅是一个数组,还是一个Dictionary,还是一个Stack。像Hashtable、Dictionary那样用,而且像他们一样效率高。

    例如:

    <script  type="text/javascript">
    var dict=new Array();
    dict["人"]="ren";
    dict["口"]="kou";
    dict["手"]="shou";
    alert(dict["口"]);
    alert(dict.口);	
    <!--输出的是key,而不是value-->
    for(var d in dict){
    	alert(d);
    }
    </script>  
    
    • Array的简化声明
    1. var arr=[3,5,6,8,9];普通数组初始化,这种数组可以看做是pinyings["人"]="ren";的特例,也就是key为0、1、2...。

    2. 字典风格的简化创建方式:var arr={"tom":30,"jim":20};

    十、其他

    • 对于数组风格的Array来说,可以使用join方法拼接为字符串。

    例如:

    var arr=["tom","jim","lily"];
    alert(arr.join(","));  
    

    注意: javascript中join是array的方法,不像.NET中是string的方法。for循环可以像C#中的foreach一样用。

    • for循环还可以获得一个对象的所有成员。因为对象的成员是以对象的key的形式出现的。

    例如:

    <!--获取document中的所有成员-->
    for(var e in document){
    	alert(e);
    }

    作者:liujf
    出处:http://www.cnblogs.com/liujf5566/
    本文版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利~

  • 相关阅读:
    hdu 5446 Unknown Treasure lucas和CRT
    Hdu 5444 Elven Postman dfs
    hdu 5443 The Water Problem 线段树
    hdu 5442 Favorite Donut 后缀数组
    hdu 5441 Travel 离线带权并查集
    hdu 5438 Ponds 拓扑排序
    hdu 5437 Alisha’s Party 优先队列
    HDU 5433 Xiao Ming climbing dp
    hdu 5432 Pyramid Split 二分
    Codeforces Round #319 (Div. 1) B. Invariance of Tree 构造
  • 原文地址:https://www.cnblogs.com/liujf5566/p/4215676.html
Copyright © 2011-2022 走看看