this的总结-不全:
1、 当元素身上的事件被触发的时候,会执行一个函数,函数中的this指向当前这个元素
2、 自执行函数中的this,永远都是window
3、 当函数被调用的时候,点前面是谁,this就是谁; 如果前面没有点,说明这个函数被window调用,this就是window;
4、 回调函数中的this,一般都是window;如果需要的话,我们可以改变回调函数中的this指向;
回调函数:当把函数的定义阶段,作为参数,传给另一个函数的时候,这个函数就是回调; 回调简称:callback / cb
ary.sort(function(){})
ary.forEach(function(){},thisArg)
ary.map(cb,thisArg)
字符串常用方法
通过下标找字符串
- charAt() 通过下标找字符
- charCodeAt() 通过下标找到字符的unicode编码;
...
var str='hello';
var str1=new String('goodbye')
undefined
str.cha
undefined
str.charAt(2)
str1.charCodeAt(2)
111
...
通过字符找下标;
- indexOf() 从前往后找,找到返回对应内容的索引,找不到返回-1;
- lastIndexOf() 从后往前找,找到返回对应内容的索引,找不到返回-1;
...
var str='green';
undefined
str.indexOf('e')
2
str.lastIndexOf('e')
3
str.indexOf('o')
-1
...
字符串的截取和查找
- str.slice(n,m) 从索引n找到索引m,包前不包后;slice可以取负值;
- str.substring(n,m) 从索引n找到索引m,包前不包后;
var str='wang'
undefined
str.slice(0,1)
"w"
str.slice(0,-2)
"wa"- slice和substring的功能一样,但是slice可以取负值,而substring不能取负值;
- str.substr(n,m) 从索引n开始,截取m个;
var str='wang'
undefined
str.substr(1,3)
"ang"
字符串转数组
- split(切割形式)
var str='wang'
undefined
str.split('')
(4) ["w", "a", "n", "g"]
字符串转大小写
- toUpperCase() 转大写;
- toLowerCase() 转小写;
var str='wang'
undefined
str.toUpperCase()
"WANG"
字符串跟正则配合的方法;
- replace(要替换的字符串/正则,替换成什么/cb的返回值) 字符串替换
- search(查找的字符串/正则)
- split(切割形式/正则)
- match(字符串/正则) 可以把捕获到的内容,以数组的形式返回;如果是捕获一个,返回的数组有三项:1)item 2)index 3)input
如果捕获到一堆,把所有捕获到的内容,以数组的形式返回;他主要用来配合正则- match捕获不到的时候,返回的null;
小题:把str="zhongguo"改成"Zhongguo"用字符串常用方法来实现;
- 思路1: str.slice(0,1).toUpperCase()+str.slice(1)
- 思路2: str.charAt(0).toUpperCase()+str.slice(1)
- 思路3: str=str.replace('z','Z');
i++和++i的区别:
- i++ 先运算后++;++只是针对变量自身的累加,跟运算没关系;
- ++ i 先++后运算;++参与了运算;
定时器
- setinterval(clearInterval)隔一段时间触发一次
var timer=setInterval(function () {
if(i>=6){
//如果i》=6的时候,关闭定时器
clearInterval(timer);
return;//阻断程序执行
}
alert(i++)
},100) - settimeout(cleartimeout)时间到的时候只执行一次
var i=0;
var timer=setTimeout(function () {
clearTimeout(timer);
alert(i++)
},100)
日期对象
- 定义一个日期对象 var oDate=new Date()
- 获取现在距离 1970年1月1日 00:00:00 的毫秒数 oDate.getTime();
- 格林尼治时间
- oDate.getFullYear()
- oDate.getMonth()+1 记得获取月份一定要+1;
- oDate.getDate() 日
- oDate.getDay() 星期 注意:星期日是0;
- oDate.getHours()
- oDate.getMinutes()
- oDate.getSeconds()
细节
- 时钟 日期对象+定时器
- 1位数转成两位数
- 一秒钟页面空白的处理;
- 倒计时
- 设置未来时间 new Date('2017/10/01 00:00:00')
- 求毫秒差
- new Date('2017/10/01 00:00:00')-new Date()
- new Date('2017/10/01 00:00:00').getTime()-new Date().getTime()
- 秒转换:把秒转成 天,时,分,秒 ; 主要用到%的思想;
- 注意:当秒位负数的时候,需要做处理;
判断
- if...else....
- switch。。case
- 三目 也叫做 三元表达式
- 语法: 条件? 执行语句1 : 执行语句2;
数字如何转为字符串
-
''+num
var str=123 undefined ''+123 "123"