ruby與javascript開發(fā)的簡(jiǎn)單比較-創(chuàng)新互聯(lián)

前言

創(chuàng)新互聯(lián)是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,專業(yè)領(lǐng)域包括成都網(wǎng)站制作、做網(wǎng)站、電商網(wǎng)站制作開發(fā)、微信小程序定制開發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開發(fā),與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評(píng)估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!

    之前用javascript做了可以實(shí)現(xiàn) 報(bào)名-競(jìng)價(jià) 活動(dòng)的party bid,如今用ruby語(yǔ)言為party_bid做了個(gè)服務(wù)端,可以創(chuàng)建用戶,每個(gè)用戶都可以組織自己的party_bid活動(dòng),并且設(shè)置的管理員可以看到所有用戶信息,并對(duì)這些用戶信息進(jìn)行管理。

  這前后分別學(xué)習(xí)了js與ruby,對(duì)它們有了初步的認(rèn)識(shí),現(xiàn)在對(duì)它們之間的共性與不同做個(gè)簡(jiǎn)單的總結(jié)。


正文


1. 大概簡(jiǎn)介

Ruby:Ruby 是一種面向?qū)ο?、命令式、函?shù)式、動(dòng)態(tài)的通用編程語(yǔ)言,其設(shè)計(jì)理念是人性化,程序員可以不用寫很多代碼就能實(shí)現(xiàn)想要的功能,多用于后臺(tái)服務(wù)端。

Javascript:JavaScript 是一種廣泛應(yīng)用于客戶端網(wǎng)頁(yè)(瀏覽器)開發(fā)的腳本語(yǔ)言,可以給 HTML 網(wǎng)頁(yè)添加動(dòng)態(tài)功能,響應(yīng)用戶的各種操作,被廣泛用于客戶端。

2. 正式PK

Array:
map方法使用:

Ruby:
a = ["1", "2"]
a.push("3")
a.map!(&:to_i)    # [1, 2, 3]

JS:
var a = ["1", "2"];
a.push("3");
a = a.map(function(n) { return parseInt(n, 10); });

遍歷方法的使用:

Ruby:
a = [1, 2, 3]
a.each {|n| puts n}
#or
a.each do |n|
    puts n
end
#or
for i in 0..(a.length - 1) do
  puts a[i]
end

JS:
var a = [1, 2, 3];
a.forEach(function(n) { console.log(n); })
//or
for (var i = 0; i < a.length; i++) {
  console.log(a[i]);
}

Strings:

獲取字符串的索引:

Ruby:
'hello'.index('e')    # 1
'hello'.rindex('l')   # 3
JS:
'hello'.indexOf('e')             // 1
'hello'.lastIndexOf('l')         // 3

判斷字符串的值:

Ruby:
if 'hello'.include? 'lo'
    puts 'found'
end
JS:

if (~'hello'.indexOf('lo')) {
  console.log('found');
}

新建字符串:

Ruby:
'hello' * 3   # 'hellohellohello'
JS:
(new Array(3 + 1)).join('hello')
    // 'hellohellohello'

Hash:

定義(方法一樣):

Ruby:
h = {}
h['a'] = 1
h['b'] = 2
JS:
var h = {};
h['a'] = 1;
h['b'] = 2;  //以下兩個(gè)用例中的h即為此處定義的h

遍歷:

Ruby:
h.each {|key, value| puts "#{key} #{value}" }
JS:
for (key in h) { console.log(key, h[key]); }

取屬性:

Ruby:
h.keys # ['a', 'b']
h.has_key?('c') # false
JS:
Object.keys(h); // ['a', 'b']
h.hasOwnProperty('c') // false

取長(zhǎng)度:

Ruby:
h.length    # 2
JS:
Object.keys(h).length    // 2

刪除:

Ruby:
h.delete("b")
JS:
delete h.b
Functions:

定義與調(diào)用:

Ruby:
#定義
def plus_5(num = 0) num + 5 end 
#調(diào)用
plus_5     # 5
plus_5(10) # 15
[5, 10, 15].map { |k| plus_5(k) } # [10, 15, 20]
JS:
//定義
function plus_5(num) { return (num || 0) + 5; }
//調(diào)用
plus_5();   // 5
plus_5(10); // 15
[5, 10, 15].map(plus_5);   // [10, 15, 20]
Math:
Ruby:
[-5, -1, -8].max            # -1
[-5, 15, 20].reduce(0, &:+) # 30
JS:
Math.max.apply(null, [-5, -1, -8])   // -1
[-5, 15, 20].reduce(function(sum, value) {
         return sum + value;
    }, 0)      // 30
Random:
Ruby:
prng = Random.new()
prng.rand(5..9)   # one of [5, 6, 7, 8, 9]
JS:
function rand(a, b) {
  return Math.floor(Math.random() * (b-a+1)+a);
 }
rand(5, 9);    // one of [5, 6, 7, 8, 9]


總結(jié)


    總的簡(jiǎn)單來(lái)說(shuō),與javascript相比,ruby是純面向?qū)ο笳Z(yǔ)言,對(duì)局部變量的定義不用加前綴var,ruby對(duì)函數(shù)的定義不用function打頭,而是def,在方法中不用括號(hào),返回值直接寫變量名,不用return,并且ruby代碼中沒(méi)有標(biāo)點(diǎn),看上去更加干凈整潔。

參考http://agentcooper.github.io/js-ruby-comparison/

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱:ruby與javascript開發(fā)的簡(jiǎn)單比較-創(chuàng)新互聯(lián)
標(biāo)題URL:http://bm7419.com/article40/iihho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站企業(yè)網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)靜態(tài)網(wǎng)站、網(wǎng)站維護(hù)、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)