讀javascript百煉成仙笑死筆記一

“自然是這樣的,但是我現在這樣改一下,你說結果是多少呢?”葉小凡詭異地笑了笑,然后打出一段比較奇特的代碼。

var a = 1;
var b;
var sum = (b = a++ + --a) + a-- + b++;


“噗!”看到這段代碼,對面弟子差點一口老血噴出來,破口大罵:“葉小凡,你……你……你欺人太甚!”

“呵呵,這位師兄,這可怨不了我,再說了,互相切磋技藝也是演武場的規矩啊。”葉小凡回想起這段被葉老折磨的日子,再看到面前這位弟子的表情,頓時開心了不少。其實這道題目就是平時葉老給葉小凡做練習的時候出的。
“這個小娃娃倒是有趣。”綠水院掌尊尹曾琪看到葉小凡竟然能出這樣的題,縱然是他也眼前一亮,不由稱贊道。當然,以他目前的修為,這種題目自然是難不住他的。但是很難想象,一個剛剛進入山門的小娃娃竟然有如此造詣,實在是讓人驚訝。
“這道題看似復雜,其實只要一步一步拆分,也是可以分析和理解得很透徹的。”林元青微微一笑,看著葉小凡的目光中多了幾分期待。畢竟,葉小凡是他親自帶上山來的,他多少有一點印象,而且他也很想看看,葉小凡如何解答這道題。
“天哪,這種題目也太匪夷所思了吧。這個葉小凡真是不知道天有多高,地有多厚。”
“就是,就是,依我看吶,這根本就是那個葉小凡隨便瞎掰的一道題,我看他自己多半也做不出來。”
“哈哈,師兄說的是啊,就讓我們一起看看他如何出糗吧。”
場外有很多資歷比葉小凡高出不少的大弟子,他們剛才試著算了一下,但是馬上就自行放棄了,紛紛向葉小凡投來鄙夷的目光。但是,其中有一道目光卻充滿了嚴肅,這個人是一個和葉小凡年齡相仿的少年,旁邊有幾個功力深厚的年輕人跟隨著他。這時候,一個長相略顯老氣的人對該少年說道:“少爺,您是當今太上大長老最喜愛的長孫,資質和天賦也是我派數百年來的翹楚。依屬下看,這個葉小凡真是不知天高地厚,多半是隨便糊弄了一下,自己都不知道這道題怎么解。”
只見少年把手一揚,那名男子立刻不說話了。接著,他饒有興趣地看著葉小凡,這人便是門派內定的繼承人,門派中太上大長老最喜歡的長孫——羅丹。
“葉小凡,現在你把這道題解釋一下吧。”林元青看向葉小凡,穩重但不失威嚴地說道。
“是。”葉小凡面朝著林元青作揖,然后抬起胸脯,緩緩道來。
“這道題看似復雜,但只要一步一步細細分開,還是有跡可循的。”

var a = 1;
var b;
var sum = (b = a++ + --a) + a-- + b++;

“首先,變量b只是被定義了一下,并沒有賦值,在運行第3行代碼之前,b的值就是undefined,表示未定義。”
“嗯,繼續說。”
“弟子遵命,接下來就是第3行代碼。這一行代碼比較長,我試著把它拆分出來。首先是這一句。”

b = a++ + --a;

“很明顯,這是一個賦值語句,a++是后置++,那么就先把a的值放進去運算。這個時候,a的值還是1。但是,一旦a++結束,a的值就變為2了。換句話說,當執行到后面的--a的時候,a的值就是2。”
“重點來了,又因為--a是前置--,意思就是先自減,然后放進式子中運算。剛才我們說到a的值已經是2了,那么--a在這里就變回了1。因此,這個表達式中,b最終的值就是1+1=2。”
“我這邊使用括號是為了讓變量b的賦值語句先進行運算。所以,b的值在后面參與運算的時候就已經是2了。剛才a最后的值是1,那么后面的a--因為是后置--,參與運算的值還是1。因此,“(b=a++ + --a)+a--”的結果就是3,a--過后變成了0,不過后面和a沒有啥關系了。最后一個是b++,由于是后置++,所以b變量參與運算的值還是2。那么,最終的答案當然就是3+2=5啦。”葉小凡輕松地說著,似乎根本不覺得這是什么困難的事情。
寂靜,一片寂靜。
就連對面的弟子也聽得津津有味,場外的一眾大弟子個個屏住了呼吸,看著葉小凡,似乎自己還真的小瞧了這個剛進山門的小師弟。羅丹雙眼死死地盯住葉小凡,臉色出現了從未有過的凝重。
“嗯,不錯,你理解得很好。”林元青不吝稱贊,一種欣慰的感覺油然而生。
第一場比拼,自然是葉小凡獲勝。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247250.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247250.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247250.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#調用存儲過程的通用類

usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data.SqlClient;usingSystem.Collections;usingSystem.Data;//摘要:數據訪問助手。//作者:ZhiQiao//日期:2008/07/02namespaceZhiQiao.DataAccessHelper{ //存…

圖靈獎得主(一)

本文轉自:http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A A.M. Turing Award ACMs most prestigious technical award is accompanied by a prize of $25,000. It is given to an individual selected fo…

react-router-dom@6獲取路由傳參

目錄 參數獲取 1、子路由形式攜帶 2、問號(?)形式參數 3、事件跳轉傳參 router/index.tsx import App from "App"; import Home from "pages/Home"; import List from "pages/List"; import Detail from "pages/Detail"; import…

圖靈獎得主(二)

本文轉自:http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 1987年度的圖靈獎授予了IBM沃特森研究中心老資格的研究員 約翰科克(Johncocke)。 科克是從機械到數學、又從數學轉到 計算機方向上來的學者。…

jQuery效果之滑動

jQuery 滑動方法有三種:slideDown()、slideUp()、slideToggle()。 jQuery slideDown() 方法用于向下滑動元素, 語法:$(selector).slideDown(speed,callback); 可選的 speed 參數規定效果的時長。它可以取以下值:"slow"、…

Error: This command has to be run with superuser privileges (under the root user on most systems).

意思是錯誤:此命令必須以超級用戶權限(在大多數系統上以root用戶權限)運行。所以當前的用戶是普通用戶,需要切換為超級用戶(root用戶)先輸入在命令行中輸入 su root 然后會出現Password:&#…

圖靈獎得主(三)

本文轉自:本文轉自:http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 繼1979年度圖靈獎首次授予一位加拿大學者K.E.Iverson之后, 1989年度的圖靈 獎又一次授予加拿大學者威廉凱亨(Willia…

對微信公共號的理解

通過redirect_uri獲取code 通過code和appid 獲取access_token 進行鑒權 轉載于:https://www.cnblogs.com/zhouyideboke/p/11309752.html

vue3 v-model變化

概覽 就變化內容而言,此部分屬于高階內容: 非兼容:用于自定義組件時,v-model的 prop 和事件默認名稱已更改: prop:value -> modelValue;event:input -> update:modelValue&a…

圖靈獎得主(四)

本文轉自:本文轉自:本文轉自:http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 1991年度的圖靈獎授予了愛丁堡大學計算機科學系教授羅 賓米爾納(Robin Milner)。米爾納是繼M.V.Wilkes(1…

sql 日期類型空值等于 1900-01-01

SQL server 中查詢:select cast( as datetime) 結果:1900-01-01 00:00:00.000 做為判斷條件的話,要注意。不能直接 轉載于:https://www.cnblogs.com/meng9527/p/11311765.html

koa洋蔥模型

Koa 和 Express 都會使用到中間件 Express的中間件是順序執行,從第一個中間件執行到最后一個中間件,發出響應如上圖 Koa是從第一個中間件開始執行,遇到 next 進入下一個中間件,一直執行到最后一個中間件,在逆序&#x…

圖靈獎得主(五)

[1993]斯坦恩斯--"打工"帶來的機遇 斯坦恩斯是學數學出身的。1958年他在卡爾頓學院(Carlton College)取 得數學學士學位后進入普林斯頓大學研究生院,用了3年時間就 取得博士學位,其博士論文課題是關于博奕論的。 斯坦恩斯跨進計算機科…

koa后端允許跨域

舉個例子 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widthdevice-width…

python面向對象之繼承

面向對象之繼承 什么是面向對象的繼承&#xff1f; 繼承&#xff08;英語&#xff1a;inheritance&#xff09;是面向對象軟件技術當中的一個概念。如果一個類別A“繼承自”另一個類別B&#xff0c;就把這個A稱 為“B的子類別”&#xff0c;而把B稱為“A的父類別”也可以稱“B是…

美國正面臨“人才泡沫”破裂危機?

&#xff08;Jason Lane和Kevin Kinser/文&#xff09;最近&#xff0c;與教育有關的種種問題在美國社會引起了廣泛討論。首先巨額的學生貸款問題&#xff1a;根據美聯儲紐約分行在2012年11月發布的一份報告&#xff0c;全美學生貸款總額已經達到420億美元&#xff0c;其中新增…

ngrx學習筆記

什么是ngrx ngrx是Angular基于Rxjs的狀態管理&#xff0c;保存了Redux的核心概念&#xff0c;并使用RxJs擴展的Redux實現。使用Observable來簡化監聽事件和訂閱等操作。 在看這篇文章之前&#xff0c;已經假設你已了解rxjs和redux。 有條件的話請查看官方文檔進行學習理解。 所…

解決RM刪除沒有釋放空間問題

www172-18-8-12 log]$ df -h Filesystem Size Used Avail Use% Mounted on/dev/vda1 120G 101G 20G 84% /devtmpfs 7.8G 0 7.8G 0% /devtmpfs 7.8G 0 7.8G 0% /dev/shmtmpfs 7.8G 601M 7.2G 8% /run 我刪除文件時&#xff0c;直接用的rm 沒有加參數lf,結果空間沒有釋放 文件已經…

.slice(0)

高手代碼里看到.slice(0)&#xff0c;查了下這樣寫的好處&#xff1a; 1.對原數組進行深拷貝&#xff0c;這樣進行一系列操作的時候就不影響原數組了&#xff1b; 2.將類數組對象轉化為真正的數組對象&#xff1a;var anchorArray [].slice.call(document.getElementsByTagN…

在線課程學習、科研科技視頻網站

最近在網絡學習課程&#xff0c;發現很多在線課程網站&#xff0c;與大家分享一下。本人新浪博客&#xff1a;http://blog.sina.com.cn/u/1240088994 公開課課程圖譜http://coursegraph.com/navigation/ 1. 網易公開課 http://open.163.com/&#xff1b; 網易TED http://…