程序员

javascript的一些小故事

2017-02-08  本文已影响0人  柠檬树QAQ
continue 持续原状  使继续、
charAt 截取一个字符(字符串截取)
findInArr   
-------------------------------------------------
关于数组:
unshift();  在数组的最前添加一个
push();     在数组的最后一位添加
shift();    在数组的最前面删除一个
pop();      在数组的最后一位给删除掉delete
splice();   :
 
    arr.splice(起始位置的下标,删除的个数);
    arr.splice(arr.length,0,4)用splice做push的功能
    arr.splice(arr.length-1,1);用splice做pop的功能
    arr.splice(起始位置的下标,删除0个,要添加的第1个,要添加的第2个,3,4,);
    arr.splice(起始位置下标,删除的个数,'a','b');
------------------------------------------------
关于字符串:
str.charAt(下标)  获取第几个字符串

indexOf('');    在一个大的字符串里查找一个小字符串的位置

lastindexOf();  从右往左找,返回的下标是从左往右数的

substring(3,7); 从大字符串里面截取一个小字符串(从第3个到第7个位子-不包括结束位置)当他的值为一个数的时候 一直截取到最后

split(‘切分的东西’); 切分之后,就变成了数组!如果里面是空字符串,就会把大字符串给切碎了!


concat      数组拼接
    var arr=[1,2,3];
    var arr2=[4,5,6];
    alert(arr.concat(arr2));


reverse     数组翻转


sort        排序

大小写转换
        toUpperCase()  小转大
        toLowerCase()   大转小

join()      方法加入数组的所有元素为一个字符串。指定字符串分开数组的每个元素。如果省略,则数组元素用逗号分隔。


parseFloat  可以把字符串转换成:数字(保留小数)


 parseInt
        可以把字符串转换成:数字(整数,取整) 在整数范围内,碰到字母,不读取!

charCodeAt  指定字符的编码


fromCharCode    编码转换成字符串


Number  
        可以把字符串转换成:数字(数字)

        严格模式:如果里面有一个字母,我就告诉你NAN(不是数字)


            NaN----不是一个数字,但是它是一个数字类型!
    
             它自己不等于自己!

判断NaN用:
            isNaN(a)

---------------------------------------------------------

关于数学的方法:


    1.Math.random() 随机数 
    2.Math.abs()  绝对值   
    3.Math.max(113,45)  最大值
        谁大是谁 ,目前来说它是113
    4.Math.min(113,45)  最小值
        谁小是谁 ,目前来说它是45
    5.Math.pow(n,m)  n的m次方

    6.Math.sqrt(25)  开平方  
            5
   
----------------------------------
    7.向上取整
        Math.ceil(12.11)---13
    8.向下取整
        Math.floor(12.89);---12
    9.四舍五入
        Math.round(12.5);












===========================================================




字符串:(类型)
    
    带引号的都是字符串   

    ***一个大字符串=多个小字符串相加!


数组: 是一个可拆分的object
    
    var arr=['zhinegshe',456,789,....]

数据类型:
typeof(a)----查看数据类型!!!

常见的6种数据类型:

    number---数字
    string---字符串
    boolean---布尔值
    object----对象
        undefined---未定义
        function--函数


数组是一个特殊的object,因为它可以拆分为多个数据类型!

    var arr=['123',123,true]
    
    alert(typeof arr)



软调试:
            alert(1)---调试简单程序,可以缩小错误范围(不能调试带循环)

            1.document.title=i; 把最后的值打印到title上!

            2.console.log(i)



隐式转换:
            (1)加法可以使数字转化字符串
            var a='12';
            var b=6;
        
            alert(a+b)---126
            字符串加数字=字符串

            **加法:数字自动转换成字符串!(一个字符串,一个数字)
            (2)减法:可以使字符串转换成数字
            var a='12';
            var b=6;
        
            alert(a+b)---126
            字符串减去数字=数字

            (3)在比较的时候,也可以把字符串转换成数字!



修改标签的内容:
        1.表单元素---value
        2.普通元素---innerHTML(修改标签里面的所有内容)

        字符串:
            页面中只要是加引号的都是字符串

            字符串+字符串=大字符串



作用域:

        全局变量:在程序中任何位置都可以使用

        局部变量:只能在函数内部使用

            闭包:子函数可以使用父函数的局部变量


什么是真?
        true   非0的数字   非空字符串 非空对象


什么是假
        false   0   空字符串   undefined  null  NaN




获取非行间样式:
    
        1、getComputedStyle(oBox,false).width

        兼容:ie9+ 谷歌  火狐

        不兼容:ie8-

        2、oBox.currentStyle.width

        只兼容:ie系列


兼容写法:获取到的值是字符串!
    
        if(oBox.currentStyle){
            alert(oBox.currentStyle.width); 
        }else{
            alert(getComputedStyle(oBox,false).width);
        }



        注意:获取到值是最终页面上展现出来的!


随机数:

        n-m
        parseInt(Math.random()*(m-n))+n


select里面有一个事件:
    
        select.onchange=function(){};



eval();
--------
1. eval可以把字符串的运算,转换成普通数字运算!
例子:
var str='12+8';
alert(eval(str));

2.eval可以把字符串的数组,转换成普通数组var str='[1,2,3,4]';
alert(eval(str));

3.eval可以把字符串的函数,转换成普通函数
var str='function show(){alert(1)}';
    eval(str);
    show();
    
--------------------------
总结:
    
    eval可以把看似很像程序代码的字符串转换成,真真意义上程序(可以转化成程序可以执行的东西)


----和字符串打交道!
    
    可以字符串解析成js可以理解的程序!

undefined出现情况:
    
    1.return为空,不写return
    2.定义一个变量不赋值
    3.访问一个元素里面,不存在的属性



方括号下标对数组是标配!

对于字符串来说:不兼容ie7-

字符串也有一个下标标配:
    alert(str.charAt(2));



this在哪些地方不管用:
    1.封装的函数里,在事件那里调用(必须传参)!
    2.定时器里面不可以直接使用父级函数的this!
    (必须把this保存在父级函数的局部变量里面)


封闭空间:
    好处:
        1.可以解决变量名冲突!
        2.可以解决i值的问题!
        3.可以解决定时器的i值



    命名冲突(变量名冲突):

怎么解决?

    答:封闭空间!     



arguments 就代表  show 里面实际参数的数组


好处:
    首先不用在有几个实参,就的写一个形参!



获取样式:
        1.行间样式(alert(obj.style.wdith))
        2.获取非行间样式


    设置样式:
        1.行间样式(obj.style.wdith='100px')
        2.className
        3.link
        4.
        with(oBox.style){//公共代码
            width='200px';
            height='200px';
            background='blue';
        }
        5.
        oBox.style.cssText='width:200px;height:200px;background:green;';



数组  json 区别:

共同:     都可以存储多个

区别:
    
    arr:
        1.数组有length
        2.for循环
        3.alert(arr)
        4.arr是有序
        5.下标是数字

    json:
        1.没有length
        2.for(var name in json){//在json里面循环name(弹出name,访问值,访问json里面name)
            alert(json[name]);  
         }

            3. console.log(json);
        4.是无序
        5.下标是字符串


json和数组的很大区别:

        数组:添加:

        arr.push();

        json :添加

        var json={a:1,b:2};
    
       json.c=3;
       
       console.log(json);


        数组:删除

        arr.pop();

        json :删除

         var json={a:1,b:2,c:3};
       
        delete json.b;
       
        console.log(json);



利用数组的length属性可以动态的 添加属性和删除属性

var arr=['red','black','green']
    arr.length=4;
    arr[3]='yellow';
    arr[arr.length]='switchQ';
    arr[arr.length]='font';

isArray 检测 是不是数组
    IF(Array.isArray() ){}

---------------------
every():    对数组中的每一项运行给定函数如果该函数的每一项都返回true ,则返回true

filter():   对数组中每一项运行给定函数,返回该函数会返回true的所有项组成的数组//查询符合某些条件的数组很有用

reduce()可以求数组所有值的和 他的函数接受4个参数:前一个值,当前值,项的索引,数组对象 例如:
var values = [1,2,3,4,5]; 
var sum = values.reduce(function(prev, cur, index, array){ 
return prev + cur; 
}); 
alert(sum); //15 

reduceRight():方法与reduce()差不多不过顺序是相反的

obj.call(绑定this指向)

上一篇下一篇

猜你喜欢

热点阅读