Javascript 教程 在线

545JavaScriptArray(数组)

访问数组元素和访问对象属性时,会发现他们的格式很像:

var array = [1, 2, 3];
var item = array[2]; // 访问数组元素

var person = {name: "Mrshang110", age: 24};
var name = person["name"]; // 访问对象元素

数组是特殊的对象。

对象的属性名是字符串类型的,数组可以看做属性名是数字类型的,这样就很好理解了。

数组还针对数组的特性,对对象属性的布局做了优化。

544JavaScriptArray(数组)

使用数组对象结合 select 对象实现二级级联菜单。

select1 省级菜单, select2市级菜单

 在省级标签中添加事件onchange="addOption()"

<select id="a1" onchange="addOption()"></select>
<select id="a2"></select>

尝试一下 »

543JavaScriptString

梳理了一下 indexOf() 与 lastIndexOf() 的区别和使用:

var str = 'xxa xxa xxax';

//不带参数
var firstA1 = str.indexOf('a');
    firstA1 = firstA1 + 1;             //默认计算的位数实际是到a的前一位,所以+1才是a的所处位置

var endA1 = str.lastIndexOf('a')         
    endA1 = endA1 + 1;                 //同上

//带参数   
var firstA2 = str.indexOf('a',5);
    firstA2 = firstA2 + 1;             //默认计算的位数实际是到a的前一位,所以+1才是a的所处位置
  
var endA2 = str.lastIndexOf('a',7)         
    endA2 = endA2 + 1;                 //同上
      
    
console.log('字符串总长度是>>>>>>>>>>' + str.length);

console.log('第一个a字符,在总长度中的位置是>>>>>>>>>>' + firstA1);              //输出3
console.log('最后一个a字符,在总长度中的位置是>>>>>>>>>>' + endA1);              //输出11


console.log('字符串的前5位之后,第一个a在总长度中的位置是>>>>>>>>>>' + firstA2);  //输出7    
console.log('字符串的前7位之内,最后一个a在总长度中的位置是>>>>>>>>>>' + endA2);  //输出7

注意:

  • 1. indexOf('a', 5) 查找的是字符串前5位之后的第一个a
  • 2. lastIndexOf('a', 7) 查找的是字符串前7位之内的最后一个a
  • 3. 千万不要混淆把 lastIndexOf('a', 7) 理解成查找字符串倒数第7位中的a
  • 4. 空格也是一位数
  • 5. 带参数是为了定位,要找哪段字符串中的 a,找到这个 a 后,再从前往后数,计算并返回它在总字符串中的位置。

542JavaScriptString

replace() 方法若想一次进行全局替换可以在后面加上 g,若想替换的内容忽略大小写 则加上 i

var sText = "abcdefaABC";
//g 代表全局替换  i 代表 忽略大小写
var txt = sText.replace( /a/gi , 'x');
document.getElementById("demo").innerHTML = txt;

尝试一下 »

541JavaScriptString

关于 JavaScript 里的 trim()/strip() 方法在其他语言中常常用 trim()/strip() 方法脱去不必要的空格等元素。

JavaScript 本身并不提供 trim() 方法,不过可以用正则表达式,通过给 String 对象增加 trim 方法的方式实现。

如下:

if(typeof(String.prototype.trim) === "undefined")
{
    String.prototype.trim = function() 
    {
        return String(this).replace(/^\s+|\s+$/g, '');
    };
}

if(" dog  ".trim() === "dog") {
    document.write("成功去除首尾空格");
} 

尝试一下 »