if ステートメントのかっこ内の式について、ECMAScript は自動的に Boolean() 変換関数を呼び出し、この式の結果をブール値に変換します。値が true の場合は次のステートメントが実行され、それ以外の場合は実行されません。
arguments オブジェクトの長さ属性を使用して、パラメーターの数をインテリジェントに決定し、パラメーターを合理的に適用します。
たとえば、渡されたすべての数値を累積する加算演算を実装したいと考えていますが、数値の数は不確かです。
function box() {var sum = 0;if (arguments.length == 0) return sum; //如果没有参数,退出for(var i = 0;i < arguments.length; i++) { //如果有,就累加sum = sum + arguments[i]; }return sum; //返回累加结果 } alert(box(5,9,12));
function box(num) {if (num <= 1) {return 1; } else {return num * arguments.callee(num-1);//使用 callee 来执行自身 } }
は、W3C のアプローチではサポートされていないため、イベント オブジェクトを直接取得できます。 window.event から。
input.onclick = function (evt) {var e = evt || window.event; //实现跨浏览器兼容获取 event 对象 alert(e); };
target と IE の srcElement は両方ともイベントのターゲットを表します。
function getTarget(evt) {var e = evt || window.event;return e.target || e.srcElement; //兼容得到事件目标 DOM 对象} document.onclick = function (evt) {var target = getTarget(evt); alert(target); };
バブリングを防ぐプロセスでは、W3C と IE では異なる方法が使用されるため、互換性を持たせる必要があります。
function stopPro(evt) {var e = evt || window.event; window.event ? e.cancelBubble = true : e.stopPropagation(); }
function preDef(evt) {var e = evt || window.event;if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; } }
function addEvent(obj, type, fn) { //添加事件兼容if (obj.addEventListener) { obj.addEventListener(type, fn); } else if (obj.attachEvent) { obj.attachEvent('on' + type, fn); } }function removeEvent(obj, type, fn) { //移除事件兼容if (obj.removeEventListener) { ob j.removeEventListener(type, fn); } else if (obj.detachEvent) { obj.detachEvent('on' + type, fn); } } addEvent(window, 'load', function () {var text = document.getElementById('text'); addEvent(text, 'contextmenu', function (evt) {var e = evt || window.event; preDef(e);var menu = document.getElementById('menu'); menu.style.left = e.clientX + 'px'; menu.style.top = e.clientY + 'px'; menu.style.visibility = 'visible'; addEvent(document, 'click', function () { document.getElementById('myMenu').style.visibility = 'hidden'; }); }); });
の 2 つがあります。
BackCompat: 標準互換モードはオフになっています。ブラウザのクライアント領域の幅は document.body.clientWidth です。 CSS1Compat: 標準互換モードがオンになります。ブラウザのクライアント領域の幅は document.documentElement.clientWidth です。
例:
function getViewport(){ if (document.compatMode == "BackCompat"){ return { width: document.body.clientWidth, height: document.body.clientHeight } } else { return { width: document.documentElement.clientWidth, height: document.documentElement.clientHeight } } }
function getStyle(element, attr) {if (typeof window.getComputedStyle != 'undefined') {//W3Creturn window.getComputedStyle(element, null)[attr]; } else if (typeof element.currentStyle != 'undeinfed') {//IEreturn element.currentStyle[attr]; } }
12.ページの幅と高さを取得します
//跨浏览器获取视口大小function getInner() {if (typeof window.innerWidth != 'undefined') { //IE8及以下undefinedreturn { width : window.innerWidth, height : window.innerHeight } } else {return { width : document.documentElement.clientWidth, height : document.documentElement.clientHeight } } }
以上がWebフロントエンドの知識共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。