1. String对象

    res=str.charAt(1);//返回字符串中第n个字符(输出:i)
    res=str.charCodeAt(1);//返回第n个字符的ASCII编码(输出:105)
    res=String.fromCharCode(105,97);//根据ASCII编码返回指定字符,可指定多个(输出:ia)
    res=str.concat('yes');//连接字符串,相当于连接符+(输出:Will you set sail tonight?yes)
    res=str.indexOf('you',3);//查找字符串'you'首次出现的位置,指定从下标3开始查找(输出:5)
    //通过indexOf可以统计一个字符在字符串中出现的次数
    function _count(str,search){
    var count=0,n=0;
    while(n!=-1){
    count++;
    n=str.indexOf(search,n+1);
    }
    return count;
    }
    var num=_count('abcaabs','a');
    console.log('count:'+num); res=str.lastIndexOf('you');//返回查找字符最后一次出现的位置,实际上是从后面开始查找(输出:25)

    sort的排序原理是什么?

    //localCpmpare比较字符串(实现中文按照字母排序)
    var array = ['白鸽', '麻雀', '大象', '狗', '猫', "鸡"];
    array = array.sort(
    function compareFunction(item1, item2) {
    return item1.localeCompare(item2);
    }
    );
    //输出:"白鸽,大象,狗,鸡,麻雀,猫"
    var arr=[6,1,3,5,2,8]
    arr=arr.sort(
    function(x,y){
    return x>y;//从小到大排序
    }
    )
    输出:"1,2,3,5,6,8"

    match匹配,search搜索,replace代替

    var str='this is a test';
    var res;
    res=str.match('is');//输出:["is", index: 2, input: "this is a test"]
    res=str.search('is');//输出:2
    res=str.replace(/is/g,'?');//全局匹配。输出:"th? ? a test",如果不加g,只替换第一个is
    str='2017-12-9';
    res=str.replace(/(\d{4})-(\d{2})-(\d{1,2})/,'$2/$3/$1');//输出:"12/9/2017"
    //用函数实现
    res=str.replace(/(\d{4})-(\d{2})-(\d{1,2})/,func);
    function func(match,d1,d2,d3){
    // return d2+'/'+d3+'/'+d1;
    return [d2,d3,d1].join('/'); }
    console.log(res);

    字符串截取

            var str='abcde';
    var res;
    //slice(start.end),返回截取后的字符串
    //substr(start,length),返回截取之后的字符串
    //split(delimiter[,limit]),将字符串拆分为数组
    res=str.slice(0,-1);//输出:abcd
    res=str.substr(2,2);//输出:cd str='red,green,blue';
    res=str.split(',',2);//2是可选参数,表示返回两个元素,输出:"red,green"

    其他

            //字符串大小写相关
    str='HELLO world';
    res=str.toLowerCase();//换成小写
    res=str.toLocaleLowerCase();//也是换成小写
    res=str.toUpperCase();//大写 //trim字符串过滤
    str=' hello world ';
    res=str.trim();//去掉了前后的空格 //产生锚点
    str='this is a test';
    document.body.innerHTML=str.anchor('anchor_name');//<a name="anchor_name">this is a test</a>
    //产生链接
    var title='百度';
    var url="http://www.baidu.com";
    document.write(title.link(url));\n
    //<a href="http://www.baidu.com">百度</a>
  2. Function对象
    属性:
        var res;
    function a(x,y,z){
    return x+y+z;
    }
    //1、constructor返回创建该对象的构造函数
    res=a.constructor;//输出:function Function() { [native code] } //2、length返回函数的参数个数
    res=a.length;//输出:3 //3、caller返回调用当前函数的函数
    function f1(){
    return f1.caller;
    }
    function f2(){
    return f1();
    }
    res=f2();
    //输出:"function f2(){return f1();}" //4、arguments返回由函数的所有参数组成的数组
    function a(){
    return arguments;
    }
    res=a(1,2,'c');//输出:[1, 2, "c", callee: function, Symbol(Symbol.iterator): function] //arguments有个callee属性,返回当前被调用的函数对象 function a(){
    return arguments.callee;
    }
    res=a();
    //输出:function a(){……}
    //可以利用callee属性实现匿名函数的自身调用
    (function(count){
    if(count<=3){
    alert(count);
    arguments.callee(++count);
    }
    })(0);

    call和apply方法

        //call回调函数
    var obj={
    say:function(x,y){return x+y;}
    };
    var obj1={};
    res=obj.say.call(obj1,1,2);//obj1调用obj的方法,1,2是参数
    res=obj.say.apply(obj,[2,3]);//跟call方法差不多,只不过参数以数组形式传递
  3. Math对象,不是函数对象
            var res;
    res=Math.E;//输出: "2.718281828459045"
    res=Math.PI;//输出:"3.141592653589793"
    res=Math.abs(-123);//取绝对值,输出:123
    res=Math.ceil(2.14);//向上取整,输出:2
    res=Math.floor(2.82);//向下取整,输出:2
    res=Math.round(2.45);//四舍五入,输出:2
    res=Math.pow(2,3);//2的3次方根,输出:8
    res=Math.sqrt(16);//开方根,输出:4
    res=Math.max(1,45,6);//求最大值,输出:45
    console.log(res)
  4. 对象的原型prototype
        function product(name,color){
    this.name=name;
    this.color=color;
    this.say=function(){return 'this is a test';};
    }
    product.prototype.price=123;
    product.prototype.memory=32;
    var p1=new product('苹果手机','白色');
    //new运算符,函数里面的this自动指向创造的对象,product函数里面的this指代p1,
    //所以p1有3个自身属性,price和memory是原型链的属性
    for(var i in p1){
    //判断是否是自身属性
    if(p1.hasOwnProperty(i)){
    console.log(p1[i]);//不能用p1.i
    } }
  5. 内建对象的扩展
    String.prototype.reverse=function(){
    return Array.prototype.reverse.apply(this.split('')).join('');
    }
    console.log('abc'.reverse());//输出:cba //检测方法是否存在,不存在则扩展
    if(!Array.prototype.inArray){
    // alert('no');
    Array.prototype.inArray=function(search){
    for(var i=0;i<this.length;i++){
    if(this[i]==search){
    return true;
    }
    }
    return false;
    }
    } var arr=['a','b','c'];
    console.log(arr.inArray('A'));
  6. 13章后看不下去,继承,原型链什么的……

05_Javascript进阶第二天的更多相关文章

  1. 05_Javascript进阶第一天

    内部私有函数 function a(){ alert('aaa'); return function b(){ alert('bbb'); } } //调用内部私有函数b,方法1 var func=a ...

  2. jQuery进阶第二天(2019 10.10)

    一.事件流程 1.事件的三要素: 事件源:发生事件的对象 事件类型:类型比如单击.双击.鼠标的移入.移除 事件处理程序: 触发事件之后做些什么,事件处理的函数 <body> <but ...

  3. 汇编语言进阶和Makefile进阶---第二天

    摘要: 原创博文:转载请标明出处:http://www.cnblogs.com/zxouxuewei 首先加载启动代码: ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序装载地 ...

  4. iOS 进阶 第二十二天(0603)

    0603 block\运行时 block block的本质是一个指向结构体的指针. 运行时 要分析clang命令反编译出来的c++代码,就要把一些小括号删掉来分析.因为这些小括号一般都是类型强转. o ...

  5. iOS 进阶 第二天(0324)

    0324 创建transform transform 是形变属性. 如下图: 如果按照上面的方法来创建的话是这样解释:是相对初始状态来说的,不会在变化后的基础上进行形变.如果要持续变化就要自己去不断改 ...

  6. lvs 进阶 第二章

    linux virtual server 一 . lvs lvs 对数据进行四层转发,根据目标地址和目标端口对请求数据进行转发. lvs 包含ipvsadm 和ipvs: ipvsadm :用户空间的 ...

  7. Linux入门进阶第二天——软件安装管理(上)

    一.大纲介绍 这里介绍的仅仅是两大家族之一的RPM,关于Debian家族的DPKG,请参考:http://justcoding.iteye.com/blog/1937171 二.简介 软件包分类: 源 ...

  8. 题解:swj社会摇进阶第二课

    题目链接 思路:按题目推一点点可以得出答案为 sigma (i-k)*n/i+d(n%i>=k) #include<bits/stdc++.h> using namespace st ...

  9. 前端开发入门到进阶第二集【emmet插件的使用技巧】

    Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具.基本上,大多数的文本编辑器都会允许你存储和重用一些代码块,我们称之为"片段".虽然片段能很好 ...

随机推荐

  1. 使用GitHub+hexo搭建个人独立博客

    前言 使用github pages服务搭建博客的好处有: 全是静态文件,访问速度快: 免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台: 可以随意绑定自己的域名,不仔细看的话 ...

  2. Core Animation 文档翻译 (第二篇)

    Core Animation 文档翻译 (第二篇) 核心动画基础要素 核心动画为我们APP内Views动画和其他可视化元素动画提供了综合性的实现体系.核心动画不是我们APP内Views的替代品,相反, ...

  3. 自定义MVC框架---第二章

    模型层的封装 模型层封装的原则 介绍: 模型层,也就是Model这一层,用来封装对数据库操作的封装 由于现在主流的编程思想还是OOP面向对象编程,也就是说项目的基本单位就是一个一个类文件,那么如何使用 ...

  4. Linux系统Java环境安装配置

    jdk安装配置 首先下载JDK和JRE,这里你的需要看看你的Linux系统是多少位的,比如我的是64位的: 下载JDK并指定到Download目录,JRE同样操作: 解压并且配置环境: tar -zx ...

  5. css样式中如何设置中文字体?

    代码如下: .selector{ font-family: SimHei,"微软雅黑",sans-serif; }  注意:加上中文名“微软雅黑”是为了兼容opera浏览器,中文字 ...

  6. Vijos P1113 不高兴的津津【模拟】

    不高兴的津津 描述 津津上初中了.妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班.另外每周妈妈还会送她去学习朗诵.舞蹈和钢琴.但是津津如果一天上课超过八个小时就会 ...

  7. hdu_1017(水水水,坑格式)

    #include<cstdio> #include<cmath> using namespace std; int main() { int T; scanf("%d ...

  8. Is It A Tree?(并查集)(dfs也可以解决)

    Is It A Tree? Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submi ...

  9. 面试(2)-java-se-HashSet和TreeSet12

    Set是java中一个不包含重复元素的collection.更正式地说,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素.正如其名称所暗示的, ...

  10. HTML5 Canvas 数据持久化存储之属性列表

    属性列表想必大家都不会陌生,正常用 HTML5 来做的属性列表大概就是用下拉菜单之类的,而且很多情况下,下拉列表还不够好看,怎么办?我试着用 HT for Web 来实现属性栏点击按钮弹出多功能选框, ...