ホームページ  >  記事  >  ウェブフロントエンド  >  Xiaoqiang の HTML5 モバイル開発ロード (26) - JavaScript レビュー 1

Xiaoqiang の HTML5 モバイル開発ロード (26) - JavaScript レビュー 1

黄舟
黄舟オリジナル
2017-02-04 14:13:571167ブラウズ

私は長い間 JavaScript を使用していなかったので、少し慣れていないように感じました。最近、HTML5 モバイル開発に関する情報を読んでいて、昨日と今日で JavaScript が非常に重要であると直感しましたが、今後さらに重要になるでしょう。大切な明日。現在、多くの JavaScript ベースのフレームワークが開発に大きな利便性をもたらしていますが、これらのツールをより適切に使用するには、JavaScript をより深く理解し、以前のノートを開いてレビューを開始する必要があります。

1. JavaScriptの役割

1. データ検証

2. Webページの操作(Webページの動的効果)

4. ajax技術の中核の一つ

2. JavaScript の構成


1. ECMAScript 仕様

ECMAScript は、データ型、キーワード、予約語、演算子、オブジェクト、ステートメントなどの JavaScript スクリプトのコア構文を指定します。これはどのブラウザーにも属しません。

ECMAScript 標準は、JavaScript スクリプトの「スケルトン」であるコアコンテンツを定義します。「スケルトン」を使用して、DOM (ドキュメント オブジェクト モデル) や BOM (ブラウザ オブジェクト モデル) などを拡張できます。


歴史: 1995 年 12 月、Sun Microsystems と Netscape Communications Corporation は JavaScript を導入しました。 1996 年 3 月、Netscape Communications は JavaScript をサポートする Netscape Navigator 2.0 をリリースしました。 Web ページのクライアント側スクリプト言語として JavaScript が成功したため、Microsoft は 1996 年 8 月に Internet Explorer 3.0 を導入しました。このソフトウェアは、JavaScript と互換性のある JScript "about" をサポートしています。

1996 年 11 月、Netscape Communications は JavaScript を標準化のために欧州コンピュータ製造者協会に提出しました。 ECMA-262 の最初のバージョンは、1997 年 6 月に Ecma 組織によって採用されました。

ECMAScript は、ECMA-262 で標準化されたスクリプト言語の名前です。 JavaScript と JScript は ECMAScript と互換性がありますが、ECMAScript を超える機能が含まれています。

2. DOM

DOMは「Document Object Model」の略称で、「Document Object Model」とも呼ばれ、W3Cによって標準化されています。

DOM は、JavaScript が HTML ドキュメントを操作するためのインターフェースを定義し、HTML ドキュメント (body、form、div、textarea など) へのアクセス方法と操作メソッドを提供します。


Xiaoqiang の HTML5 モバイル開発ロード (26) - JavaScript レビュー 13. HTML DOM

w3c dom は標準であり、比較的遅く登場しました

html dom は標準ではなく (各ブラウザ独自の)、以前に登場しました、w3c dom はまだ登場していません (dom 0)
多くのブラウザでもいくつかのオブジェクト
Select
Option
Table
TableRow
TableCell

4をサポートしています。BOM

BOMは「Browser Object Model」の略称で、「Browser Object Model」と呼ばれます。

BOM は、JavaScript がブラウザを操作するためのインターフェースを定義し、特定の機能 (ブラウザのウィンドウ サイズ、バージョン情報、閲覧履歴など) や操作方法にアクセスする方法を提供します。

残念ながら、BOM は ECMAScript の拡張にすぎず、関連する標準はありません。この部分はブラウザ メーカーごとに標準化されておらず、これが BOM の弱点とも言えます。
通常、ブラウザ固有 (つまり、W3C 標準以外) の JavaScript 拡張機能は BOM の一部とみなされ、主に次のものが含まれます。

    ブラウザを閉じ、移動し、ブラウザ ウィンドウのサイズを変更します
  • 新しいブラウザをポップアップします。ウィンドウ;
  • はブラウザの詳細のアンカー オブジェクトを提供します。
  • はブラウザのウィンドウにロードされるドキュメントの詳細のアンカー オブジェクトを提供します。 Cookie;
  • ActiveXObject クラスを追加して、JavaScript を通じて BOM を拡張し、ActiveX オブジェクトをインスタンス化します。
  • 3. JavaScript データ型

  • 1. 基本データ型
  • number

  • string

boolean

null

2. 複雑なデータ型

関数

数学

Date

Number

String

RegExp

Error

Aguments

Object

4. JavaScriptのイベント処理機構

1.イベント処理コードのバインド方法

(1)に設定しますHTML タグ

(2) dom ノードにバインドします

var obj = document.getElementById(id);

obj.onclick = f1; /domノードにバインド

<html>  
    <!--  绑定事件处理代码   -->  
    <head>  
        <script>    
        <!--这部分代码保存到活动对象里面,script里面执行完还没有生成树-->  
            function f1(){  
                alert(&#39;hello&#39;);  
            }  
        </script>  
    </head>     
    <body style="font-size:30px;">  
        <input id="b1" type="button" value="点我吧"/>  
        <script>  
            var obj = document.getElementById(&#39;b1&#39;);  
            obj.onclick = f1; //绑定到dom节点上  
        //好处:可以将js代码和html代码分开  
        </script>  
    </body>  
</html>

HTMLコードとJavaScriptコードは別々に保存されます

function f1(){  
    alert(&#39;hello&#39;);  
}   
//window.onload表示当整个html文档全部解析完毕,  
//也就是说整个dom树已经生成之后,浏览器会产生一个load事件  
window.onload = function(){  
    var obj = document.getElementById(&#39;b1&#39;);  
    obj.onclick = f1;  
};  
//load事件不是用户参与产生的,是浏览器自己产生的  
//下面事件是用于触发的  
//click  blur  mouseover submit change
<html>  
    <!--  绑定事件处理代码   -->  
    <head>  
        <script src="myjs2.js"></script>  
    </head>     
    <body style="font-size:30px;">  
        <input id="b1" type="button" value="点我吧"/>  
    </body>  
</html>

このバインディング方法の利点は、JSコードとHTMLコードを分離できるので、コードのメンテナンスが容易になることです
しかしこれこの方法の欠点は、パラメータを渡すのが不便で、パラメータの転送には匿名関数を使用する必要があることです

//如果想传参数可以写一个匿名函数  
  
function f1(info){  
    alert(&#39;hello&#39;+info);  
}   
//window.onload表示当整个html文档全部解析完毕,  
//也就是说整个dom树已经生成之后,浏览器会产生一个load事件  
window.onload = function(){  
    var obj = document.getElementById(&#39;b1&#39;);  
    obj.onclick = function(){  //匿名函数  
        f1(&#39;zs&#39;);  //传参数  
    };  
};  
//load事件不是用户参与产生的,是浏览器自己产生的  
//下面事件是用于触发的  
//click  blur  mouseover submit change

(3) 各ブラウザ独自のバインディングメソッドを使用します
ブラウザの互換性の問題のため、使用量を減らすことをお勧めします


2. イベントオブジェクト

(1) イベントオブジェクトの取得方法


ボタンをクリック--->イベントオブジェクトを生成--->イベントソースを見つける

IE: イベントを直接使用

firefox:メソッドパラメータにイベントを追加する必要があります
IEとの互換性も同時に持たせたい場合、Firefoxはメソッドにイベントパラメータを追加するだけです

(2) イベントオブジェクトの役割

clientX,clientY获得鼠标点击的坐标

<html>  
    <head>  
        <script>  
            //只能在IE上运行  
            function f1(){ //输出用户点击时鼠标的坐标  
            //window省略不写  
                alert(event.clientX + &#39; &#39; + event.clientY);  
            }  
            //在firefox上面运行,IE也支持  
            function f2(event){  
                alert(event.clientX + &#39; &#39; + event.clientY);  
            }  
        </script>  
    </head>  
    <body style="font-size:30px;font-style:italic;">  
        <a href="javascript:;" onclick="f1();">only ie not firefox</a><br/><br/>  
        <a href="javascript:;" onclick="f2(event);">ie and firefox</a>  
    </body>  
</html>

找到事件源(产生事件的那个对象)


ie: event.srcElement
firefox: event.target

<html>  
    <head>  
        <script>  
            //只能在火狐上运行  
            function f3(e){  
                //通过事件对象找到事件源  
                var obj = e.target; //obj就是那个链接<a>  
                alert(obj.innerHTML);  
            }  
            //只能在IE上面运行  
            function f4(e){  
                var obj = e.srcElement;  
                alert(obj.innerHTML);  
            }  
            //可以在IE和火狐上面运行  
            function f5(e){  
            //js当中任意数据类型都可以转换成true或者false  
                var obj = e.target || e.srcElement;  
                alert(obj.innerHTML);   
            }  
        </script>  
    </head>  
    <body style="font-size:30px;font-style:italic;">  
        <a href="javascript:;" onclick="f5(event);  
        ">get the first resorce</a><br/><br/>  
        <a href="javascript:;" onclick="f5(event);  
        ">get the second resorce</a>  
    </body>  
</html>

3、事件冒泡


当一个事件产生后,浏览器会在该事件的节点上查找有没有相应的事件处理代码,如果有则浏览器调用相应的事件处理代码来处理,处理完成后,该事件会继续向上抛给父节点继续处理如果没有,也会将事件继续向上抛给父节点继续处理

<html>  
    <head>  
        <script>  
            function clickA(){  
                alert(&#39;你点击了连接&#39;);  
            }  
            function clickDiv(){  
                alert(&#39;你点击了Div&#39;);  
            }  
        </script>  
        <style>  
            #d1{  
                width:200px;  
                height:200px;  
                background-color:red;  
            }  
        </style>  
    </head>  
    <body style="font-size:30px;font-style:italic;">  
        <div id="d1" onclick="clickDiv();">  
            <a href="javascript:;" onclick="clickA();">click5</a>  
        </div>  
    </body>  
</html>

如何取消事件冒泡:event.cancelBubble = true;

<html>  
    <head>  
        <script>  
            function clickA(e){  
                alert(&#39;你点击了连接&#39;);  
                e.cancelBubble = true;  
            }  
            function clickDiv(e){  
                alert(&#39;你点击了Div&#39;);  
            }  
        </script>  
        <style>  
            #d1{  
                width:200px;  
                height:200px;  
                background-color:red;  
            }  
        </style>  
    </head>  
    <body style="font-size:30px;font-style:italic;">  
        <div id="d1" onclick="clickDiv(event);">  
            <a href="javascript:;" onclick="clickA(event);">click5</a>  
        </div>  
    </body>  
</html>

以上就是 小强的HTML5移动开发之路(26)—— JavaScript回顾1的内容,更多相关内容请关注PHP中文网(www.php.cn)!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。