js對象、基本類型和字面值

一、js字面值

1. 概念

         表示某種特定類型的一個值。

2. 舉例

         一個引用的字符串(string)、浮點數(Number)、布爾值(Boolean)

         "this is a string example"    2.37    true/false

二、js基本類型

1.概念

          特定的數據類型的一個實例

2. 五種類型

          String、Number、Boolean、null、undefined

          以上前三種類型基本類型,有對應的構造方法對象。

          基本類型變量(沒有使用new創建的變量)嚴格地等於字面值 ,二對象實例則不會。因爲基本類型是根據值來進行比較的,而值是字面值。

三、示例

3.1 從字符串提取一個列表
 

//提取朋友的姓名
var str = "this is a list of friends:xushuai,zhuxiao,huxiang,bianjingbin.";
var start = str.indexOf(':');
var end = str.indexOf('.', start + 1);
alert(start);//25
alert(end);//61
var list = str.substring(start + 1, end);
var re = list.split(',');
console.log(re);

//提取朋友的姓名
var str = "this is a list of friends: xushuai,zhuxiao , huxiang,bianjingbin.";
var start = str.indexOf(':');
var end = str.indexOf('.', start + 1);
alert(start);//25
alert(end);//61
var list = str.substring(start + 1, end);
var re = list.split(',');
console.log(re);
//forEach()方法作爲參數傳遞的函數(回調函數),應用到每一個數組元素身上。
//該回調函數支持三個參數:數組元素的值,可選的數組元素的索引,數組自身
re.forEach(function (element, index, array) {
    array[index] = element.trim();
});
console.log(re);

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>全局搜索</title>
    <style>
        .found{
            background-color:#ff0;
        }
    </style>
    <!--<script src="../JS/面向對象的程序設計.js"></script>-->
</head>
<body>
    <form id="search">
        <textarea id="incoming" cols="100" rows="15"></textarea>
        <p>
            Search pattern:<input id="pattern" type="text" />
        </p>
    </form>
    <button id="searchSubmit">搜索</button>
    <div id="searchResult"></div>
    <script>
        document.getElementById("searchSubmit").onclick = function () {
            //獲取模式
            var pattern = document.getElementById("pattern").value;
            var re = new RegExp(pattern, "g");

            //獲取字符串
            var searchString = document.getElementById("incoming").value;

            var matchArray;
            var resultString = "<pre>";
            var first = 0;
            var last = 0;

            //找到每一個匹配
            while ((matchArray = re.exec(searchString)) != null) {
                last = matchArray.index;//index屬性聲明的是匹配文本的第一個字符的位置

                //獲取所有匹配的字符串,將其連接起來
                resultString += searchString.substring(first, last);

                //使用class,添加匹配的字符串
                resultString += "<span class='found'" + matchArray[0] + "</span>";
                first = re.lastIndex;//該屬性設置爲匹配文本的最後一個字符的下一個位置
            }

            //完成字符串
            resultString += searchString.substring(first, searchString.length);
            resultString += "</pre>";

            //插入到頁面
            document.getElementById("searchResult").innerHTML = resultString;
        }
    </script>
</body>
</html>

3.2 使用捕獲圓括號交換一個字符串中的單詞

3.2.1 String.replace特殊模式 

            模式                                                 用途
              $$ 允許替換中有一個字面值美元符號
              $& 插入匹配的字符串
              $` 在匹配之前插入字符串的一部分
              $' 在匹配之後插入字符串的一部分
              $n

插入使用RegExp的第n次捕獲圓括號的值

4. 使用帶有定時器的函數閉包

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        #redbox{
            position:absolute;
            left:100px;
            top:100px;
            width:200px;height:200px;
            background-color:red;
        }
    </style>
</head>
<body>
    <div id="redbox"></div>
    <script>
        var intervalId = null;
        document.getElementById("redbox").addEventListener("click", startBox, false);
        function startBox() {
            if (intervalId == null) {
                var x = 100;
                intervalId = window.setInterval(
                    function () {
                        x += 30;
                        var left = x + "px";
                        document.getElementById("redbox").style.left = left;
                    }, 1000);
            } else {
                clearInterval(intervalId);
                intervalId = null;
            }
        }
    </script>
</body>
</html>

5. 把表中一列的所有數字加和

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>把表格值轉換爲數學,並且求得加和結果</title>
</head>
<body>
    <table id="table1">
        <tr>
            <td>sssss</td>
            <td>234</td>
        </tr>
        <tr>
            <td>fffff</td>
            <td>78</td>
        </tr>
        <tr>
            <td>ggggg</td>
            <td>176</td>
        </tr>
    </table>
    <script type="text/javascript">
        var sum = 0;
        //找到第二列中的所有單元格
        var cells = document.querySelectorAll("td+td");

        for (var i = 0; i < cells.length; i++) {
            sum += parseFloat(cells[i].firstChild.data);
        }
        //將求和結果添加至表尾
        var newRow = document.createElement("tr");
        //第一個單元格
        var firstCell = document.createElement("td");
        var firstCellText = document.createTextNode("Sum:");
        firstCell.appendChild(firstCellText);
        newRow.appendChild(firstCell);

        //帶有總和的第二個單元格
        var secondCell = document.createElement("td");
        var secondCellText = document.createTextNode(sum);
        secondCell.appendChild(secondCellText);
        newRow.appendChild(secondCell);

        //給表添加行
        document.getElementById("table1").appendChild(newRow);
    </script>
</body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章