05_Javascript进阶第二天
- 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> - 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方法差不多,只不过参数以数组形式传递 - 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) - 对象的原型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
} } - 内建对象的扩展
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')); - 13章后看不下去,继承,原型链什么的……
05_Javascript进阶第二天的更多相关文章
- 05_Javascript进阶第一天
内部私有函数 function a(){ alert('aaa'); return function b(){ alert('bbb'); } } //调用内部私有函数b,方法1 var func=a ...
- jQuery进阶第二天(2019 10.10)
一.事件流程 1.事件的三要素: 事件源:发生事件的对象 事件类型:类型比如单击.双击.鼠标的移入.移除 事件处理程序: 触发事件之后做些什么,事件处理的函数 <body> <but ...
- 汇编语言进阶和Makefile进阶---第二天
摘要: 原创博文:转载请标明出处:http://www.cnblogs.com/zxouxuewei 首先加载启动代码: ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序装载地 ...
- iOS 进阶 第二十二天(0603)
0603 block\运行时 block block的本质是一个指向结构体的指针. 运行时 要分析clang命令反编译出来的c++代码,就要把一些小括号删掉来分析.因为这些小括号一般都是类型强转. o ...
- iOS 进阶 第二天(0324)
0324 创建transform transform 是形变属性. 如下图: 如果按照上面的方法来创建的话是这样解释:是相对初始状态来说的,不会在变化后的基础上进行形变.如果要持续变化就要自己去不断改 ...
- lvs 进阶 第二章
linux virtual server 一 . lvs lvs 对数据进行四层转发,根据目标地址和目标端口对请求数据进行转发. lvs 包含ipvsadm 和ipvs: ipvsadm :用户空间的 ...
- Linux入门进阶第二天——软件安装管理(上)
一.大纲介绍 这里介绍的仅仅是两大家族之一的RPM,关于Debian家族的DPKG,请参考:http://justcoding.iteye.com/blog/1937171 二.简介 软件包分类: 源 ...
- 题解:swj社会摇进阶第二课
题目链接 思路:按题目推一点点可以得出答案为 sigma (i-k)*n/i+d(n%i>=k) #include<bits/stdc++.h> using namespace st ...
- 前端开发入门到进阶第二集【emmet插件的使用技巧】
Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具.基本上,大多数的文本编辑器都会允许你存储和重用一些代码块,我们称之为"片段".虽然片段能很好 ...
随机推荐
- Linux下SVN提交时强制写日志
Linux版本: 1.在svn的hooks目录下新建一个名为pre-commit的文件并为其添加执行权限(用vi pre-commit直接创建) 2.pre-commit文件的内容如下: #!/bin ...
- Redis进阶实践之二如何在Linux系统上安装安装Redis
一.引言 上一篇文章写了"如何安装VMware Pro虚拟机"和在虚拟机上安装Linux操作系统.那是第一步,有了Linux操作系统,我们才可以在该系统上安装Redis. ...
- 咫尺论坛|即速应用-微信小程序社区
咫尺论坛|即速应用-微信小程序社区 是一个集微信和支付宝小程序行业资讯.开发资源.技术交流于一身的大型小程序开发论坛,成立伊始便迅速聚集了一大批小程序开发爱好者,短时间内成为了国内领先的小程序开发者社 ...
- 工具:从一个文件夹中复制jar到另一个文件夹中
工具类:从一个文件夹中复制jar到另一个文件夹中 需要的小伙伴可以试一试,很爽哦,有时候真的很需要! 需求:当我们拿到一个maven项目时,而maven项目的jar包都是通过pom.xml文件管理的, ...
- 数据挖掘之聚类算法Apriori总结
项目中有时候需要用到对数据进行关联分析,比如分析一个小商店中顾客购买习惯. package com.data.algorithm; import com.google.common.base.Spli ...
- 前端 IoC 理念入门
背景 近几年,前端应用(WebApp)正朝着大规模方向发展,在这个过程中我们会对项目拆解成多个模块/组件来组合使用,以此提高我们代码的复用性,最终提高研发效率. 在编写一个复杂组件的时候,总会依赖其他 ...
- XML(一)XML大揭秘
前言 每天都要学习很多新的知识,比你厉害的程序员比你还努力,那你混的下这口饭吗?所以不抱怨,坚持!接下来给大家分享的是xml.可能很多做开发的都遇到过xml, 比如maven,各种框架的配置文件都有, ...
- UVA 11292 Dragon of Loowater(简单贪心)
Problem C: The Dragon of Loowater Once upon a time, in the Kingdom of Loowater, a minor nuisance tur ...
- BZOJ1008: [HNOI2008]越狱-快速幂+取模
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 8689 Solved: 3748 Description 监狱有 ...
- Flexbox 练习和总结
练习地址: http://flexboxfroggy.com/ Welcome to Flexbox Froggy, a game where you help Froggy and friends ...