編程基礎(chǔ)_2020-03-09_03

1. 如何調(diào)試程序

a. 語法錯(cuò)誤

語法錯(cuò)誤指的是不符合程序語言的語法,這樣的程序無法執(zhí)行

const draw = function(l) {
    //變量len未定義
    len = l + 20 
  
    log('draw, len', len)
    forward(len)
}

draw(100)

//運(yùn)行結(jié)果:
運(yùn)行時(shí)有錯(cuò)誤產(chǎn)生,函數(shù)調(diào)用情況:
C:\Users\jixia\Documents\快編程\lesson03\lesson.gua | 第 161 行 | 全局
  draw(100)
C:\Users\jixia\Documents\快編程\lesson03\lesson.gua | 第 156 行 | draw
  len = l + 20
變量未定義: <len>
b. 邏輯錯(cuò)誤

邏輯錯(cuò)誤指的是程序可以運(yùn)行缘缚,但是得到的不是預(yù)期的結(jié)果

const draw = function(l) {
    //要打印變量l的值料饥,錯(cuò)寫成數(shù)字1
    log('draw, l', 1)
    forward(1)
}
draw(100)

//運(yùn)行結(jié)果:
draw, l 1 //預(yù)期結(jié)果為100
c. 調(diào)試程序的兩個(gè)難點(diǎn)

1.程序的運(yùn)行路徑你不知道,要想去辦法讓它顯示出來

  1. 程序的運(yùn)行狀態(tài)(變量的值)你不知道届案,要去看到它

PS:因此可以使用log()來進(jìn)行調(diào)試屠列,使用log()函數(shù)時(shí)一定要標(biāo)記輸出值的含義啦逆,否則會(huì)混淆

2.數(shù)組

a. array 可以存儲(chǔ)很多元素, 每個(gè)元素的值、類型都可以不同

var demoArray = function() {
    // array(數(shù)組)常用操作
    // 創(chuàng)建數(shù)組
    // 使用 [] 符號(hào), 每個(gè)元素用逗號(hào)分隔
    var a = [1, 3, 4, 5]
    // 現(xiàn)在 a 是一個(gè) array, 擁有 4 個(gè)元素


    // 可以用 .length() 的方式得到 array 的長度
    log('求 array 長度', a.length())
    // 使用 .length() 可以求出數(shù)組的長度(數(shù)組中元素的個(gè)數(shù))
    // 值可以用變量接住
    var length = a.length()
    log('a.length() ', length)

    // 訪問元素
    // 對(duì)于數(shù)組中的每個(gè)元素, 可以通過下標(biāo)訪問
    // 下標(biāo)就是元素在數(shù)組中的序號(hào), 從 0 開始
    // 下標(biāo)訪問語法是 [] 中括號(hào)
    log('用下標(biāo)訪問 array 中的元素')
    log('a[0]', a[0])
    log('a[1]', a[1])
    log('a[2]', a[2])
    log('a[3]', a[3])
    // 因?yàn)橐还仓挥?4 個(gè)元素, 所以訪問不存在的下標(biāo)會(huì)出錯(cuò)
    // log(a[4])

    // 手動(dòng)訪問元素當(dāng)然是低效的
    // 可以用循環(huán)來訪問元素, 這個(gè)過程叫 遍歷
    log('循環(huán)訪問 array 所有元素')
    var i = 0
    //這里a.length()在每次循環(huán)時(shí)笛洛,都要計(jì)算一次蹦浦,可以先將a.length賦值給一個(gè)變量,再使用
    while(i < a.length()) {
        log('a[i]', a[i])
        i = i + 1
    }
}
//運(yùn)行結(jié)果:
求 array 長度 4
a.length()  4
用下標(biāo)訪問 array 中的元素
a[0] 1
a[1] 3
a[2] 4
a[3] 5
循環(huán)訪問 array 所有元素
a[i] 1
a[i] 3
a[i] 4
a[i] 5

b.可以用數(shù)組的 push 函數(shù)往列表末尾插入一個(gè)元素撞蜂,并且, 這個(gè)新元素可以是任意類型, 這里是一個(gè)字符串 ,數(shù)組類型的變量可以用 .函數(shù)() 的方式來進(jìn)行操作

var demoArrayAdd = function() {
    var a = [1, 3, 4, 5]
    a.add('新元素')
    log('a push ', a)
    // [1, 3, 4, 5, '新元素']

    a.add(0)
    log('a.add(0)', a)
    // [1, 3, 4, 5, '新元素', 0]

    // 多添加幾個(gè)元素
    a.add(12)
    a.add(34)
    a.add(56)
    log('a.add 12 34 56', a)
}

//運(yùn)行結(jié)果:
a push  [1, 3, 4, 5, '新元素']
a.add(0) [1, 3, 4, 5, '新元素', 0]
a.add 12 34 56 [1, 3, 4, 5, '新元素', 0, 12, 34, 56]

3. 字符串

a. 串可以判斷相等侥袜、可以相加拼接蝌诡,可以用加號(hào)進(jìn)行拼接,或者使用字符串有一個(gè) .format 函數(shù)可以替換其中的 {}

var name = 'gua'
var hello = '{}, 你好'.format(name)
// 簡單說來, 就是 {} 會(huì)被變量 name 替換形成新字符串
log('format dmeo ',  name)

//運(yùn)行結(jié)果:
format dmeo  gua

b. 字符串相當(dāng)于一個(gè) array, 可以用下標(biāo)訪問枫吧,也可以使用循環(huán)進(jìn)行遍歷,字符串不能使用下標(biāo)來賦值,只能拼接起來生成一個(gè)新的字符串

c. 字符串可以用 .cut 函數(shù)來獲取子字符串, array 也可以這樣切片,可以省略結(jié)束下標(biāo)參數(shù), 表示取到底

PS: cut 操作不會(huì)影響原來的字符串

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末浦旱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子九杂,更是在濱河造成了極大的恐慌颁湖,老刑警劉巖宣蠕,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異甥捺,居然都是意外死亡抢蚀,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門镰禾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來皿曲,“玉大人,你說我怎么就攤上這事吴侦∥菪荩” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵备韧,是天一觀的道長劫樟。 經(jīng)常有香客問我,道長织堂,這世上最難降的妖魔是什么叠艳? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮捧挺,結(jié)果婚禮上虑绵,老公的妹妹穿的比我還像新娘。我一直安慰自己闽烙,他們只是感情好翅睛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著黑竞,像睡著了一般捕发。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上很魂,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天扎酷,我揣著相機(jī)與錄音,去河邊找鬼遏匆。 笑死法挨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的幅聘。 我是一名探鬼主播凡纳,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼帝蒿!你這毒婦竟也來了荐糜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎暴氏,沒想到半個(gè)月后延塑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡答渔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年关带,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片研儒。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡豫缨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出端朵,到底是詐尸還是另有隱情好芭,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布冲呢,位于F島的核電站舍败,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏敬拓。R本人自食惡果不足惜邻薯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望乘凸。 院中可真熱鬧厕诡,春花似錦、人聲如沸营勤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽葛作。三九已至寿羞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赂蠢,已是汗流浹背绪穆。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虱岂,地道東北人玖院。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像第岖,于是被迫代替她去往敵國和親司恳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容