javascript的一些小故事

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指向)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容