美文网首页程序员
javascript的一些小故事

javascript的一些小故事

作者: 柠檬树QAQ | 来源:发表于2017-02-08 23:46 被阅读0次
    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指向)
    
    

    相关文章

      网友评论

        本文标题:javascript的一些小故事

        本文链接:https://www.haomeiwen.com/subject/dxabittx.html