【读书笔记】JavaScript Note (一)

文章出处:

JavaScript Note  http://irw.ncut.edu.tw/peterju/jscript.html

简介:

  JavaScript是一个object-based(以物件(对象)为基础)的Script Language(脚本语言),与Java之间并没有什么直接联系。

  JavaScript随着网页下载到电脑中,并经过浏览器上的runtime engine 直译后,然后跟HTML程式混在一起,做出特效来。

  JavaScript是区分大小【大小写敏感】写的(case sensitive),HTML则否【大小写不敏感】(case insensitive), event handlers【事件处理器】在HTML中可不区分大小写,但在JavaScript区段中必须完全使用小写。(event handler 正式是全部用小写, 例如 onclickonchangeonmouseover, 若在 HTML使用, 例如在 <form><body> 內, 可不理会大小写, 但若在 <script> 內, 就一定全部要用小寫。衔接:http://www.takka.com.hk/jstutor/ch11/ch11.htm

  JavaScript既然是object-based的script language,其所指的object有三大类。

    1. JavaScript内建物件(对象)(例如 Array,String)
    2. 浏览器提供的物件(对象)(即Document Object Model;DOM【文档对象模型】)
    3. 自订物件

  JavaScript 一般用来与网页上的表单互动,因此了解DOM就变得十分的重要,其object指的是浏览器的物件(对象),像是document,image, form,button,textarea…等,这些物件(对象)各有属性(property)与方法(method),物件间也有其阶层框架(hierarchy),了解这些后才能彻底灵活运用JavaScript。

浏览器的支持差异:

       JavaScript在不同的浏览器上的表现都有差异,一般而言,IE对于错误的程式的容忍度高,Mozilla则为严谨。(IE可不指定document),而mozilla则否。IE:forms.text.value  Mozilla:document.forms.text.value;

 

JavaScript区段宣告

       (1)JavaScript的程式码(程序)包在指定的宣告中;

       (2)JavaScript code 独立成一个.js的档案。

       (3)可使用分號或enter將多行的程式碼斷行,但要寫在一行時,則一定要使用分號,同時注意程式碼可以斷行,但參數不可斷行喔(不懂,能否指点一二,谢谢)。

  宣告语法:

<script type = "text/javascript" >
<!--   script  -->
</script>
<!--嵌入宣告 -->
<script type= "text/javascript" src = "*.js"> <!-- *.js :外部的.js文档url -->
<script>
<!-- 宣告不支持JavaScript的语法-->
<noscript>本网页使用了JavaScript,请点击文字版本观看内容 </noscript>

 

JavaScript的执行方式

  (1)网页直接执行:JavaScript的程式码(程序)置于任何区段,要配合宣告。

<!-- JavaScript的程式码(程序)置于Head区段显示文字 -->
<html>
<head>
<script type = "text/javascript">
document.write('Hello World');
</script>
</head>
</html>
<!-- JavaScript 的程式码(程序)置于body区段显示html -->
<html>
<head>
</head>
<body>
<script type = "text/javascript">
  document.write('<h1>Hello world</h1>');
</script>
</body>
</html>

  (2)事件驱动执行:配合body区段的事件(event),JavaScript的程式码(程序)可置于

    1. 事件的参数中(少量的代码),无需宣告。

    2.Head区段或body区段中,要配合宣告,建议放在head区段中。

<!-- 配合事件驱动,JavaScript的程式码(程序)置Head区段 -->
<html>
<head>
<script type = "text/javascript">
function message() {
alert("Hello world");
}
</script>
</head>
<body onload = "message()">
</body>
</html>
<!-- 配合事件驱动,少量的JavaScript直接放在事件的参数中。-->
<html>
<head>
</head>
<body>
<input name = "s" type = "button" onclick = 'document.bgColor = "red"' value = '红色' />
</body>
</html>


资料形态(Data Type) 【数据类型】

  JavaScript无法明确地宣告数据类型。在很多情况下,JavaScript会在需要的时候自动执行转换。

  原生资料形态(Primitive Date Type) 【基本数据类型】

  字串(String) 字串值是一串由0个或0个以上的Unicode字元(字母,小数点和标点符号)结合而成。双括号可以包含在单括号的字串里, 而单括号也可以包含在双括号里。

<script type = "text/javascript">
var a = "hello world";
var b = 'hello world';
var c = "hello'world'";
var d = 'hello"world"';
document.write("a: " + a + " , b" + b + ", c: " + c + ", d: " + d);
</script>

  数字(number)JavaScript中的整形和浮点值并无明显区分(JavaScript内部把所有的数字表示为浮点值)。

    NaN:用不正确的资料,像字符或未定义的值执行数学运算时。

    Positive Infinity:正无穷大。

    Negative Infinity: 负无穷大

    Positive and Negative : 正零和负零(JavaScript区分)

  布林(boolean)【布尔值】 true和false

 

  特殊资料形态

    null和undefined最大的不同时,null就好比零,而undefined好比特殊值NaN(非数值)

    null值和undefined值经比较后一律相等。

  null

    null是一个包含null的变量,就是“无值”或“无物件(对象)”。null关键字不能拿来作为一个函数或变量的名称。

    JavaScript的null资料形态只有一个值:null。

  undefined

    1. 不存在的物件属性。
    2. 已经宣告,但未指定值的变量。

    要检验一个变量是否存在,可以检测这个变量是否为undefined

<script type = "text/javascript">
var test = 1;
if (typeof(test) == "undefined") {
document.write("test undefined");
}
if (typeof(_test) == "undefined") {
document.write("test_ undefined");
}
</script>

  组合(引用)数据类型

    对象(object)  数组中的元素可存放各种数据类型;

                     数组的下标除了数字外,也可以存在文字,这种数组称为开放式数组;

                     数组就是对象,对象就是数组。

<script type = "text/javascript">
var a = "abc"; //双引号的字串
var b = 'def'; //单引号的字串
var c = 123; //数字

var d = [123, "abc", a, b]; //使用了中括号定义阵列(数组),阵列中可存放各种数据类型
var e = new Array(123, "abc", a , c); //使用了Array构造式定义阵列(数组),阵列中可存放各种数据类型
var f = {"peter":123, "john":456, "jane":789}; //使用了大括号定义了一个开放性阵列(数组)

var g = new Object(); //定义一个物件(对象)
g.peter= 123; //利用【物件属性】给值
g.john = 456;

g["jane"] = 789; //利用数组的方式给值

alert(f["peter"]);
alert(f.john); //对矩阵以【物件属性】的方式给值
alert(g["peter"]); //对物件以【矩阵】的方式给值
alert(g.jane);

</script>

       函数(function) JavaScript可将函数当成变量来传递。

 

  基本类型转换:

    JavaScript的语言类型并不严谨,不需要非常明确地宣告变量的类型。

   自动转化原则

    1. 运算式中有数字的字符串且使用了(+),表达式视为字符串。
    2. 运算式中有数字的字符串且使用了(-*/….)其他运算符,运算式视为数值。
    3. null乘以任何数皆为零。
    4. undefined乘以任何数皆为NaN(Not a Number)。

 

  强制转化

   1.  将字符串强制改为数值:eval(“字串”);eval将字符串改为对象(数组)。

<script type = "text/javascript">
eval("x = 10; y = 20; document.write(x * y)"); //使用之一

var f = '{"peter":123, "john":456, "jane":789}'; //使用了大括号定义了一个开放性阵列(数组) 并表示为字串
eval("var type =" + f); //使用之二

alert(type.peter);
</script>

  2.  将字符串强制转换为指定底数的数值:parseInt(“字串”,[底数]);

  3.  将字符串强迫转换为浮点数:parseFloat(“字串”);

 

变数(Variable)【变量】

       宣告【声明】

    类型:

    局部变量                                                 var 变量名

    全局变量                                                 变量名

    var test;                    //局部变量;
test_; //全局变量

  方式:

<script type = "text/javascript">
var name; //单一变量声明
var name, sex, age; //多变量声明
var name = "iokays", flag = true; //声明并赋予初值,否则其值为undefined
</script>

  虽然数据类型不同,但是声明的方式一样。

 

  命名(identifier)

    提供作为命名变量,命名函数,提供语法的格式。

              1.区分大小写                  

var x, X;                                //声明了x, X 2个变量

              2.第一个字元必须是ASCII字母(大小写皆可)、底线(_)字元,注意数字不能拿来当做第一个字元。后面的字元必须是字母,数字,或底线。                

var _x; var x_1;

              3.复合字的第一个字建议大写。

              4.变量名不能为保留字(关键字)。

函数(function)

  (一)3种表现形式

    1.一般的函数定义方式;

    2.使用函数文字;

    3.使用了Function()构造式。

  (二)以<a>…</a>标签连接至javascript的函数有2种方式。

         文字浏览器不可用(假连接)     

<a href = 'javascript:show_url("argument")' >连接至JavaScript函数</a>

         文字浏览器可用

<a href = ### onclick = 'show_url("argument");return false;'>连接JavaScript</a>

相关文档源码下载

你可能感兴趣的:(JavaScript)