『壹』 使用js如何求table中一列的和
這問題很容易解決,求第二列的話就用
for(var i = 0; i<document.getElementById("ddd").childNodes[0].childNodes.length; i++){
if(i%2==0){
num+=parseInt(document.getElementById("ddd").childNodes[0].childNodes[i].childNodes[0].innerText);}
}
明白吧,就是用模除,如果求第三列條件就設置為i%3=0就可以了
『貳』 JS常用設計模式(MVC、MVP、MVVM及其他設計模式)
一、MVC
MVC模式的意思是,軟體可以分成三個部分。
視圖(View):用戶界面。
控制器(Controller):業務邏輯
模型(Model):數據保存
各部分之間的通信方式如下。
View 傳送指令到 Controller
Controller 完成業務邏輯後,要求 Model 改變狀態
Model 將新的數據發送到 View,用戶得到反饋
所有通信都是單向的。
二、互動模式
接受用戶指令時,MVC 可以分成兩種方式。一種是通過 View 接受指令,傳遞給 Controller。
另一種是直接通過controller接受指令。
三、實例:Backbone
實際項目往往採用更靈活的方式,以 Backbone.js 為例。
1. 用戶可以向 View 發送指令(DOM 事件),再由 View 直接要求 Model 改變狀態。
2. 用戶也可以直接向 Controller 發送指令(改變 URL 觸發 hashChange 事件),再由 Controller 發送給 View。
3. Controller 非常薄,只起到路由的作用,而 View 非常厚,業務邏輯都部署在 View。所以,Backbone 索性取消了 Controller,只保留一個 Router(路由器) 。
四、MVP
MVP 模式將 Controller 改名為 Presenter,同時改變了通信方向。
1. 各部分之間的通信,都是雙向的。
2. View 與 Model 不發生聯系,都通過 Presenter 傳遞。
3. View 非常薄,不部署任何業務邏輯,稱為"被動視圖"(Passive View),即沒有任何主動性,而 Presenter非常厚,所有邏輯都部署在那裡。
五、MVVM
MVVM 模式將 Presenter 改名為 ViewModel,基本上與 MVP 模式完全一致。
唯一的區別是,它採用雙向綁定(data-binding):View的變動,自動反映在 ViewModel,反之亦然。 Angular 和 Ember 都採用這種模式。
1、js工廠模式
說明:
在函數中定義對象,並定義對象的各種屬性,雖然屬性可以為方法,但是建議將屬性為方法的屬性定義到函數之外,這樣可以避免重復創建該方法。
引用該對象的時候,這里使用的是 var x = Parent()而不是 var x = new object(); 因為後者可能會出現很多問題(前者也成為工廠經典方式,後者稱之為混合工廠方式),不推薦使用new的方式使用該對象。
在函數的最後返回該對象。
不推薦使用這種方式創建對象,但應該了解。
2、js構造函數模式
說明:
與工廠方式相比,使用構造函數方式創建對象無需在函數內部創建對象,而使用this指代,並而函數無需明確return。
同工廠模式一樣,雖然屬性的值可以為方法,仍建議將該方法定義在函數之外。
同樣的,不推薦使用這種方式創建對象,但仍需了解。
3、js原型模式
說明:
函數中不對屬性進行定義。
利用prototype屬性對屬性進行定義。
同樣的額,不推薦使用這樣的方式創建對象。
4、構造函數+原型的js混合模式(推薦)
說明:
該模式是指混合搭配使用構造函數和原型方式。
將所有的屬性,不是方法的定義在函數中(構造函數的方式),將所有屬性值為方法的利用prototype在函數之外定義(原型方式)。
推薦使用這樣的方式創建對象,這樣有好處。
5、構造函數+原型的動態原型模式(推薦)
說明:
動態原型方式可以理解為混合構造函數,原型方式的一個特例。
該模式中,屬性為方法的屬性直接在函數中進行了定義,但是因為
if(typeof Parent.lev == "undefined"){
Parent.prototype.lev = function(){
return this.name;
}
Parent.lev = true;
}
從而保證創建該對象的實例時,屬性的方法不會被重復的創建。
『叄』 請問javaScript中的取模是什麼意思如: if(a%2==0)和if(a/2==0)的差別
a%2==0 指的是 判斷a除以2之後的余數是不是為零, 稱為取模運算。 a/2==0 指的是判斷a除以2的運算結果是不是為零。
『肆』 js的求余數和取模運算符是哪個
取余運算符 (%):一個表達式的值除以另一個表達式的值,返回余數。公式:result = numberA % numberB返回值:result,任何變數
參數:numberA,任何數值表達式。;numberB,任何數值表達式。 說明取余(或余數)運算符用 number1 除以 number2 (把浮點數四捨五入為整數),然後只返回余數作為 result。
舉例:
1
var r = 2%4;//結果是2
『伍』 取模是怎麼運算的
對於整型數a,b來說,取模運算或者求余運算的方法都是:
1.求 整數商: c = a/b;
2.計算模或者余數: r = a - c*b.
求模運算和求余運算在第一步不同: 取余運算在取c的值時,向0 方向舍入(fix()函數);而取模運算在計算c的值時,向負無窮方向舍入(floor()函數)。
例如:計算-7 Mod 4
那麼:a = -7;b = 4;
第一步:求整數商c,如進行求模運算c = -2(向負無窮方向舍入),求余c = -1(向0方向舍入);
第二步:計算模和余數的公式相同,但因c的值不同,求模時r = 1,求余時r = -3。
歸納:當a和b符號一致時,求模運算和求余運算所得的c的值一致,因此結果一致。
當符號不一致時,結果不一樣。求模運算結果的符號和b一致,求余運算結果的符號和a一致。
另外各個環境下%運算符的含義不同,比如c/c++,java 為取余,而python則為取模。
『陸』 javascript取模運算是怎麼算的
javascript取模運算是一個表達式的值除以另一個表達式的值,並返回余數。
取模在js里就是取余數的意思。
a%b //是求余數;
a/b //是求商;
Math.abs(x) //是求x的絕對值;
12除以5=2,余數是2,即5*2+2=12,所以12%5=2
7除以3=2,余數是1,即3*2+1=7,所以7%3=1
(6)js求模擴展閱讀:
取模運算(「Molo Operation」)和取余運算(「Complementation 」)兩個概念有重疊的部分但又不完全一致。主要的區別在於對負整數進行除法運算時操作不同。取模主要是用於計算機術語中。取余則更多是數學概念。
模運算在數論和程序設計中都有著廣泛的應用,從奇偶數的判別到素數的判別,從模冪運算到最大公約數的求法,從孫子問題到凱撒密碼問題,無不充斥著模運算的身影。雖然很多數論教材上對模運算都有一定的介紹,但多數都是以純理論為主,對於模運算在程序設計中的應用涉及不多。
『柒』 javascript中的%取模什麼意思
取模,簡單的理解就是小學數學除法除不盡的時候的余數,除盡後的專零:
下面是小例子屬:
alert(10%3)//1,10除3餘1,所以模就是的結果就是1.
alert(9%3)//0,3可以被整除,所以結果是0