7_JavaScript_Math對(duì)象_字符串對(duì)象_瀏覽器對(duì)象BOM

Math對(duì)象

  1. Math 對(duì)象用于執(zhí)行數(shù)學(xué)任務(wù)。
  • Math 對(duì)象并不像 Date 和 String 那樣是對(duì)象的類,因此沒有構(gòu)造函數(shù) Math()。

算數(shù)值

JavaScript 提供 8 種可被 Math 對(duì)象訪問的算數(shù)值:

  1. Math.PI 返回圓周率(約等于3.14159)。
  • Math.E 返回算術(shù)常量 e,即自然對(duì)數(shù)的底數(shù)(約等于2.718)。
  • Math.SQRT2 返回 2 的平方根(約等于 1.414)。
  • Math.SQRT1_2 返回返回 1/2 的平方根(約等于 0.707)。
  • Math.LN2 返回 2 的自然對(duì)數(shù)(約等于0.693)。
  • Math.LN10 返回 10 的自然對(duì)數(shù)(約等于2.302)。
  • Math.LOG2E 返回以 2 為底的 e 的對(duì)數(shù)(約等于 1.443)。
  • Math.LOG10E 返回以 10 為底的 e 的對(duì)數(shù)(約等于0.434)。

document.write(Math.PI);

數(shù)值取整

  1. ceil(x) 對(duì)數(shù)進(jìn)行上舍入。
  • floor(x) 對(duì)數(shù)進(jìn)行下舍入。
  • round(x) 把數(shù)四舍五入為最接近的整數(shù)。

document.write(Math.floor(3.6));

隨機(jī)數(shù)

  1. random() 返回 0 ~ 1 之間的隨機(jī)數(shù)。
  • 注意并不包括0和1

document.write(Math.random());

三角函數(shù)

  1. cos(x) 返回?cái)?shù)的余弦。
  • acos(x) 返回 x 的反余弦值。
  • sin(x) 返回?cái)?shù)的正弦。
  • asin(x) 返回 x 的反正弦值。
  • tan(x) 返回角的正切。
  • atan(x) 以介于 -PI/2 與 PI/2 弧度之間的數(shù)值來返回 x 的反正切值。

document.write(Math.cos(Math.PI/2));

其他方法

  1. max(x,y) 返回 x 和 y 中的最高值。
  • min(x,y) 返回 x 和 y 中的最低值。
  • abs(x) 返回 x 的絕對(duì)值。
  • atan2(y,x) 返回從 x 軸到點(diǎn) (x,y) 的角度(介于 -PI/2 與 PI/2 弧度之間)。
  • exp(x) 返回 e 的指數(shù)。
  • log(x) 返回?cái)?shù)的自然對(duì)數(shù)(底為e)。
  • pow(x,y) 返回 x 的 y 次冪。
  • valueOf() 返回 Math 對(duì)象的原始值

document.write(Math.max(5,10));

字符串對(duì)象

  1. 字符串是非常重要的數(shù)據(jù)類型,除了基本字符串外,JavaScript還提供了字符串的引用類型--字符串對(duì)象。
  • 字符串對(duì)象提供了字符串檢索、替換、連接等方法...
  • 可以通過new 關(guān)鍵字創(chuàng)建字符串對(duì)象
  • var str=new String()
  • length 屬性返回字符串的長度(字符數(shù))。
var str1 = "hello";
var str2 = new String()
document.write(typeof str1);
document.write(typeof str2);
document.write(str1.length);
document.write(str2.length);

字符串與數(shù)字的轉(zhuǎn)換

  1. toString() 返回字符串。可以將數(shù)值轉(zhuǎn)換成字符串。
  • 如果需要獲取數(shù)值的二進(jìn)制、八進(jìn)制、十六進(jìn)制的字符串表示,則可以給toString()傳遞一個(gè)表示進(jìn)制的的整數(shù)
  • parseInt()函數(shù)可以將字符串轉(zhuǎn)換成整數(shù)
  • parseFloat()函數(shù)可以將字符串轉(zhuǎn)換浮點(diǎn)數(shù)
  • Number()函數(shù)可以將任意類型的值轉(zhuǎn)換數(shù)值。
var str2 = num.toString();
var str2 = num.toString(2);
var str2 = parseInt(num);

字符串對(duì)象的常用方法

  1. charAt() 返回在指定位置的字符。
  • charCodeAt() 返回在指定的位置的字符的 Unicode 編碼。
  • concat() 連接字符串。
  • slice(n,m) 提取字符串n到m之間的片斷(不包括m位置的字符串),并在新的字符串中返回被提取的部分。
  • substring() 提取字符串中兩個(gè)指定的索引號(hào)之間的字符。大多數(shù)情況和上一個(gè)作用相同,當(dāng)參數(shù)為負(fù)值時(shí)會(huì)有不同,但這種情況較少用
  • substr(n,m) 從起始索引號(hào)提取字符串中指定數(shù)目的字符。
  • split() 把字符串分割為字符串?dāng)?shù)組。
  • indexOf() 檢索字符串,返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置。注意,如果查找不到會(huì)返回 -1
  • lastIndexOf() 從后向前搜索字符串。
  • toLowerCase() 把字符串轉(zhuǎn)換為小寫。
  • toUpperCase() 把字符串轉(zhuǎn)換為大寫。
  • match() 找到一個(gè)或多個(gè)正則表達(dá)式的匹配。(正則表達(dá)式后續(xù)課程會(huì)講)
    該方法會(huì)返回一個(gè)數(shù)組,數(shù)組中包含了所有符合條件的文本。
  • replace() 替換與正則表達(dá)式匹配的子串,并返回替換后的字符串,注意原字符串不會(huì)改變
  • search() 檢索與正則表達(dá)式相匹配的值。查找與參數(shù)模式相匹配的文本,并返回該文本的位置。若無則返回null(indexOf()會(huì)返回-1).與indexOf()相似。
  • ......
    需要注意的是,JavaScript 的字符串是不可變的(immutable),String 類定義的方法都不能改變字符串的內(nèi)容。像 String.toUpperCase() 這樣的方法,返回的是全新的字符串,而不是修改原始字符串。
var str1 = "hello";
var str2 = new String("javascript");
document.write(str2.charAt(1)+'<br>');
document.write(str2.charCodeAt(1)+'<br>');
document.write(str2.concat('a')+'<br>');

瀏覽器對(duì)象BOM

基本概念

  1. BOM是Browser Object Model的縮寫,簡(jiǎn)稱瀏覽器對(duì)象模型
  • BOM由一系列相關(guān)的對(duì)象構(gòu)成,并且每個(gè)對(duì)象都提供了很多方法與屬性
  • 基本的BOM體系結(jié)構(gòu)圖
  • 能利用BOM做什么?
    BOM提供了一些訪問窗口對(duì)象的一些方法,我們可以用它來移動(dòng)窗口位置,改變窗口大小,打開新窗口和關(guān)閉窗口,彈出對(duì)話框,進(jìn)行導(dǎo)航以及獲取客戶的一些信息如:瀏覽器品牌版本,屏幕分辨率。但BOM最強(qiáng)大的功能是它提供了一個(gè)訪問HTML頁面的一入口——document對(duì)象,以使得我們可以通過這個(gè)入口來使用DOM的強(qiáng)大功能!!!

window對(duì)象的方法和屬性

window對(duì)象是瀏覽器窗口對(duì)文檔提供的一個(gè)現(xiàn)實(shí)的容器,代表打開的瀏覽器窗口,是每一個(gè)加載文檔的父對(duì)象

window的屬性和方法調(diào)用方法:window.屬性,window.方法 也可以直接調(diào)用省略 window.

  1. 對(duì)話框

    • alert() 顯示帶有一段消息和一個(gè)確認(rèn)按鈕的警告框。
    • confirm() 顯示可提示用戶輸入的對(duì)話框。返回值為布爾值
    • prompt() 顯示帶有一段消息以及確認(rèn)按鈕和取消按鈕的對(duì)話框。
      第一個(gè)參數(shù)是提示,第二個(gè)參數(shù)是默認(rèn)值;
      返回值為輸入的值,取消返回null
  2. 窗體控制

    • open() 打開一個(gè)新的瀏覽器窗口或查找一個(gè)已命名的窗口。
      • URL:聲明了要在新窗口中顯示的文檔的 URL。
      • name:聲明了新窗口的名稱或者窗口目標(biāo)。
      • features:聲明了新窗口要顯示的標(biāo)準(zhǔn)瀏覽器的特征。
      • 窗口的屬性:
        • 常用:
          • width:新建窗口寬度
          • heigth:新建窗口高度
          • top:左上角垂直坐標(biāo)
          • left:左上角水平坐標(biāo)
        • 其他不太常用的屬性:
          • toolbar:指定窗口是否有標(biāo)準(zhǔn)工具欄。當(dāng)該選項(xiàng)的值為1或yes時(shí),表示有標(biāo)準(zhǔn)工具欄,當(dāng)該選項(xiàng)的值為0或no時(shí),表示沒有標(biāo)準(zhǔn)工具欄;
          • resizable:指定窗口是否可改變大小,選項(xiàng)的值及含義與toolbar相同;
          • ocation:指定窗口是否有地址工具欄,選項(xiàng)的值及含義與toolbar相同;
          • directories:指定窗口是否有鏈接工具欄,選項(xiàng)的值及含義與toolbar相同;
          • status:指定窗口是否有狀態(tài)欄,選項(xiàng)的值及含義與toolbar相同;
          • menubar:指定窗口是否有菜單,選項(xiàng)的值及含義與toolbar相同;
          • scrollbar:指定當(dāng)前窗口文檔大于窗口時(shí)是否有滾動(dòng)條,選項(xiàng)的值及含義與 toolbar相同;
          • ........
    • close() 關(guān)閉瀏覽器窗口。
  3. 定時(shí)器

    • setInterval() 按照指定的周期(以毫秒計(jì))來調(diào)用函數(shù)或計(jì)算表達(dá)式。
    • setTimeout() 在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式。
    • clearInterval() 取消由 setInterval() 設(shè)置的 timeout。
    • clearTimeout() 取消由 setTimeout() 方法設(shè)置的 timeout。
    var timeId = setTimeout(test,10);
    clearTimeout(timeId);
    
  4. 其他方法

    • print() 打印當(dāng)前窗口的內(nèi)容。
    • blur() 把鍵盤焦點(diǎn)從頂層窗口移開。
    • createPopup() 創(chuàng)建一個(gè) pop-up 窗口。
    • focus() 把鍵盤焦點(diǎn)給予一個(gè)窗口。
    • moveBy() 可相對(duì)窗口的當(dāng)前坐標(biāo)把它移動(dòng)指定的像素。
    • moveTo() 把窗口的左上角移動(dòng)到一個(gè)指定的坐標(biāo)。
    • resizeBy() 按照指定的像素調(diào)整窗口的大小。
    • resizeTo() 把窗口的大小調(diào)整到指定的寬度和高度。
    • scrollBy() 按照指定的像素值來滾動(dòng)內(nèi)容。
    • scrollTo() 把內(nèi)容滾動(dòng)到指定的坐標(biāo)。
  5. Window 對(duì)象屬性

    • 掌握部分
      • innerWidth 返回窗口的文檔顯示區(qū)的寬度。
      • innerHeight 返回窗口的文檔顯示區(qū)的高度。
    • 了解部分
      • name 設(shè)置或返回窗口的名稱。
      • opener 返回對(duì)創(chuàng)建此窗口的窗口的引用。
      • closed 返回窗口是否已被關(guān)閉。
      • self 返回對(duì)當(dāng)前窗口的引用。
      • top 返回最頂層的先輩窗口。
      • outerheight 返回窗口的外部高度。
      • outerwidth 返回窗口的外部寬度。
      • status 設(shè)置窗口狀態(tài)欄的文本。
      • ......

History對(duì)象的常用方法

history對(duì)象有back和forward兩個(gè)方法,它可以跳轉(zhuǎn)到當(dāng)前頁的上一頁和下一頁,可以用length屬性查看客戶端瀏覽器的歷史列表中訪問的網(wǎng)頁個(gè)數(shù)

  1. back() 加載 history 列表中的前一個(gè) URL。
  • forward() 加載 history 列表中的下一個(gè) URL。
  • go() 加載 history 列表中的某個(gè)具體頁面。

Location 對(duì)象

  1. Location 對(duì)象的屬性
    • href 設(shè)置或返回完整的 URL。
    • host 設(shè)置或返回主機(jī)名和當(dāng)前 URL 的端口號(hào)。
    • hash 設(shè)置或返回從井號(hào) (#) 開始的 URL(錨)。
    • hostname 設(shè)置或返回當(dāng)前 URL 的主機(jī)名。
    • pathname 設(shè)置或返回當(dāng)前 URL 的路徑部分。
    • port 設(shè)置或返回當(dāng)前 URL 的端口號(hào)。
    • protocol 設(shè)置或返回當(dāng)前 URL 的協(xié)議。
    • search 設(shè)置或返回從問號(hào) (?) 開始的 URL(查詢部分)。
  2. Location 對(duì)象的方法
    • assign() 加載新的文檔。
    • reload() 重新加載當(dāng)前文檔。
      如果該方法沒有規(guī)定參數(shù),或者參數(shù)是 false,它就會(huì)用 HTTP 頭 If-Modified-Since 來檢測(cè)服務(wù)器上的文檔是否已改變。如果文檔已改變,reload() 會(huì)再次下載該文檔。如果文檔未改變,則該方法將從緩存中裝載文檔。這與用戶單擊瀏覽器的刷新按鈕的效果是完全一樣的。 如果把該方法的參數(shù)設(shè)置為 true,那么無論文檔的最后修改日期是什么,它都會(huì)繞過緩存,從服務(wù)器上重新下載該文檔。這與用戶在單擊瀏覽器的刷新按鈕時(shí)按住 Shift 健的效果是完全一樣。
    • replace() 用新的文檔替換當(dāng)前文檔。
      replace() 方法不會(huì)在 History 對(duì)象中生成一個(gè)新的記錄。當(dāng)使用該方法時(shí),新的 URL 將覆蓋 History 對(duì)象中的當(dāng)前記錄。

Screen 對(duì)象

  1. availHeight 返回顯示屏幕的高度 (除 Windows 任務(wù)欄之外)。
  • availWidth 返回顯示屏幕的寬度 (除 Windows 任務(wù)欄之外)。
  • height 返回顯示屏幕的高度。
  • width 返回顯示器屏幕的寬度。
  • bufferDepth 設(shè)置或返回調(diào)色板的比特深度。
  • ......

Navigator 對(duì)象屬性

  1. appCodeName 返回瀏覽器的代碼名。
  • appMinorVersion 返回瀏覽器的次級(jí)版本。
  • appName 返回瀏覽器的名稱。
  • appVersion 返回瀏覽器的平臺(tái)和版本信息。
  • cookieEnabled 返回指明瀏覽器中是否啟用 cookie 的布爾值。
  • userAgent 返回由客戶機(jī)發(fā)送服務(wù)器的 user-agent 頭部的值
  • onLine 返回指明系統(tǒng)是否處于脫機(jī)模式的布爾值。
  • ......
// 動(dòng)態(tài)顯示時(shí)間
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
    function clock() {
        var today = new Date();
        var hours = today.getHours();
        var minutes = today.getMinutes();
        var seconds = today.getSeconds();
        var str = "現(xiàn)在時(shí)間:"
        if (hours < 12) {
            str+='上午';
        }else {
            str+='下午';
        }
        str+=hours+'時(shí)'+minutes+'分'+seconds+'秒';
        // document.write(str+'<br>')
        var clock=document.getElementById('clock')
        clock.value=str

    }
    setInterval('clock()',1000);
    </script>
    <input type="text" id="clock" size="40">
    <input type="button" id="clock" size="40"  value="停止時(shí)間" onclick="clearInterval(timeId) ">
</body>
</html>
// 比賽
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
        var guojing=new Object();
            guojing.name="郭靖"
            guojing.HP=500;
            guojing.gj=90;
            guojing.sd=60;
            guojing.skill=new Array('亢龍有悔','飛龍?jiān)谔?,'見龍?jiān)谔?,'鴻漸于陸','潛龍勿用')

        var ouyang=new Object();
            ouyang.name='歐陽鋒';
            ouyang.HP=800;
            ouyang.gj=100;
            ouyang.sd=40;
            ouyang.skill=new Array('靈蛇棍法','鳳凰神力','顛倒陰陽','逆轉(zhuǎn)靜脈','天蟾神功')

        function whoGjwho(a,b) {
            return a.sd*Math.random()>b.sd*Math.random()?[a,b]:[b,a];
        }

        function game() {
            var skillIndex=Math.floor(Math.random()*5)
            var fight = whoGjwho(guojing,ouyang);
            var attacker = fight[0];
            var defender = fight[1];
            var damage=attacker.gj*Math.random()-defender.gj*Math.random();
                if(damage<=0){
                    damage=0
                }else{
                    damage=Math.ceil(damage);
                }
            defender.HP-=damage;

            document.write(attacker.name+"使用了一招"+attacker.skill[skillIndex]+'<br>')
            document.write(defender.name+"損失了"+damage+'點(diǎn)HP'+'<br>')

            if (defender.HP>0) {
                document.write(defender.name+"的HP:"+defender.HP+'<br>'+attacker.name+'的HP:'+attacker.HP+'<hr>')
            }else{
                document.write(defender.name+'戰(zhàn)敗了'+'<br>'+attacker.name+'取得了勝利!'+'<br>')
                alert(attacker.name+'取得了勝利!'+'Gmame Over!')
                clearInterval(zd)
            }
        }
        var zd=setInterval('game()',50)
    </script>

</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,646評(píng)論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,595評(píng)論 3 418
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,560評(píng)論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,035評(píng)論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,814評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,224評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,301評(píng)論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,444評(píng)論 0 288
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,988評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,804評(píng)論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,998評(píng)論 1 370
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,544評(píng)論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,237評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,665評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,927評(píng)論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,706評(píng)論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,993評(píng)論 2 374

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

  • 在JavaScript中對(duì)象通常包括兩種類型:內(nèi)置對(duì)象和瀏覽器對(duì)象,此外,用戶還可以自定義對(duì)象。 對(duì)象包含兩個(gè)要素...
    老夫撩發(fā)少年狂閱讀 1,017評(píng)論 0 1
  • 一、JS前言 (1)認(rèn)識(shí)JS 也許你已經(jīng)了解HTML標(biāo)記(也稱為結(jié)構(gòu)),知道了CSS樣式(也稱為表示),會(huì)使用HT...
    凜0_0閱讀 2,788評(píng)論 0 8
  • 第1章 認(rèn)識(shí)JS JavaScript能做什么?1.增強(qiáng)頁面動(dòng)態(tài)效果(如:下拉菜單、圖片輪播、信息滾動(dòng)等)2.實(shí)現(xiàn)...
    mo默22閱讀 1,317評(píng)論 0 5
  • 今天心情超級(jí)不好。 記得在微博上看過一句話,喜歡上一個(gè)人以后就變得不酷了。因此在我遇到的很多男生,很多段感情中...
    FIONA_小fish閱讀 222評(píng)論 0 1
  • 蔡小賤手把手親手撕開你們引以為傲的生活
    阿毒i閱讀 633評(píng)論 2 1