JS基础(6)

<b>获取样式:</b>
封装了一个获取非行间样式:

封装: 就是把代码包裹起来
特点:
    a). 通用性
    b). 方便

function getStyle(obj,name) {
     return obj.currentStyle ? obj.currentStyle[name] : getComputedStyle(obj,false)[name];
}

<b>设置样式:</b>
a). class -> oDiv.className=’xx’
b). style -> oDiv.style.样式=’xxx’
其他方式:
cssText: -> 批量设置样式
也是操作的行间的样式

字符串小方法(函数)

<b>1. str.charAt(索引值);</b>
获取字符串中的某一个?
var str = ‘abc’;
str.charAt(索引值);
返回:小字符串

<b>2. str.indexOf(小字符串)</b>
在字符串中找某一个小字符串的位置
var str = ‘welcome’;
str.indexOf(小字符串)
返回:数字
<strong>特性:</strong>
a). 找到之后不会继续往下找
b). 找不到就返回-1
c). 区分大小写
d). 从左往右找
e). 找多个小字符串会返回第一个匹配字符的位置

eg: 判断浏览器类型

UA:  window.navigator.userAgent
    Chrome:
    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36
    FF:
    Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 
    IE7:
    Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3) 

在window.navigator.userAgent下找相对应的关键词

<b>3. str.indexOf(小字符串)</b>
找小字符串在整个字符串中的位置,从右往左找
返回:数字
特性:
a). 找到之后不会继续往下找
b). 找不到就返回-1
c). 区分大小写
d). 从右往左
e). 找多个小字符串会返回第一个匹配字符的位置

<b>4. str.substring(开始位置,结束位置)</b>
var str = ‘width’;
截取字符串
str.substring(开始位置,结束位置);
*** 包含开始位置,但是不包含结束位置
str.substring(开始位置)
从开始位置一直截取到最后

eg :
截取扩展名:
    a.txt.js.html.doc
    a). 找最后一个 . 出现的一个位置
    b). 从最后一个点的位置+1 开始截取,一直截取到最后

<b>5. str.split(切割的规则);</b>
切割字符串
把字符串变成数组
返回:数组
如果没有找到切割规则,原样输出到一个数组中,长度是1

<b>6. 大小写转换:</b>
var str = ‘width’;
转大写: -> ‘WIDTH’
str.toUpperCase();

var str = ‘WIDTH’;
转小写: -> ‘width’
str.toLowerCase();

<b>字符串的比较(一般没什么用,知道就行)</b>

   'apple'  'banana'
    1. 英文:
        按照字典序
        a -> 最小
        z -> 最大
    先比较第一个,如果相等会依次比较下去
    2. 数字:
        a). 一个数字,一个字符串的数字
            先做隐式转化,在做比较
        b). 两个字符串的数字比较
            先比较第一个,如果相等会依次比较下去
    3. 汉字:
        蒙圈
        Unicode 排序

数组小方法(函数)

怎么定义一个数组:
a). var arr = [1,2,3]; √
b). var arr = new Array(1,2,3);
小问题:当new 一个数组内容为一个数字的时候他返回的就是他的长度为该数字
var arr = new Array(3); 数组的长度是3

长度 : arr.length
访问: arr[下标]

添加:
a). push(东西) -> 往数组的最后面添加一项
b). unshift(东西) -> 往数组的最前面添加一项
返回:新数组的长度

删除:
a). pop(); -> 从数组的最后面删除一项
返回删除的东西
b). shift(); -> 从数组的最前面删除一项
返回删除的东西

万能操作:
arr.splice(开始位置,删除个数,元素1,元素2…);

    添加:
    var arr = [1,2,3,4]
    在 1 的后面添加 'a' 和 'b'
    arr.splice(1,0,'a','b')

    删除:
    var arr = [1,2,3,4];
    删除 2,3
    arr.splice(1,2);

    修改:先删除在添加
    var arr = [1,2,3,4];
    把 2 改成 8,88,888
    arr.splice(1,1,8,88,888);


splice模拟上面的方法:
    a). splice模拟push方法:
        arr.splice(arr.length,0,元素);
    b). splice模拟unshift方法:
        arr.splice(0,0,元素);
    c). splice模拟pop方法:
        arr.splice(arr.length-1,1);
    d). splice模拟shift方法:
        arr.splice(0,1);

字符串转数组:
str.split(切割的规则);

数组转字符串:
var arr = [1,2,3,4];
arr.join(‘连接的规则’);

数组拼接:
arr.concat(数组)

var arr = [1,2,3];
    var arr2 = [4,5,6];
        arr.concat(arr2....);

    var arr = [1,2,3,4,5];

数组反转:
a). arr.reverse();
b). 循环pop

数组排序:
arr.sort();
var arr = [‘banana’,’apple’,’width’,’color’];
a). 字母 -> 按照字典序

var arr = [’11’,’12’,’333′,’231′];
b). 字符串数字 -> 按照首字母大小

var arr = [1,2,11,23,123,5];
c).arr.sort();

高级排序:
arr.sort(function(n1,n2){
n1 > n2
n1 < n2
n1 = n2
});

// 从小到大
arr.sort(function(n1,n2){
    return n1 - n2;
});

// 从大到小
arr.sort(function(n1,n2){
    return n2 - n1;
});

关于数组注意点:
a). 数组里面一般可以放任意数据类型的东西,但是建议大家只放一种数据类型
b). 数组的长度length, 还可以修改

怎么快速清空一个数组:
a). arr.length = 0
b). arr.splice(0,arr.length)
c). 循环pop
d). arr = [];

    原文作者:lemontree2000
    原文地址: https://www.jianshu.com/p/7b8fb852ffc9
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞