您的位置:首页 > Web前端 > JavaScript

JS基础内容小结(基础)(一)

2016-10-01 00:56 169 查看
字符串的各类方法
str.charAt(1); 从第0个开始计算获取第一个子符串,如str=‘你好吗’获取到‘好’
str.charCodeAt(1); 获取对应字符串的编码数字;从第0个开始计算
String.fromCharCode(22937, 21619); 返回对应字符串编码的字符串;以下应该记一下(静态方法)
0~9的编码是48~57
a~z的编码是97~122
A~Z的编码是65~90

str.indexOf('x', 4); 从零开始寻找x得到9 'x'用来确定所选字符串,作为目标,4是可选值从第四个开始找
str.lastIndexOf('o'); 从后往前开始找

'1000' < '2' // true 字符串的比较是比较字符编码大小
'1000' > 2 // true 隐式转换,转化为数字进行比较

str.substr(2,4) 从下表第三开始往后4个字符

str.substring(0, 4); // 截取字符串,从低0的空格到第4个
substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置
以上两个都属于清拷贝,原来的父元素不做修改

str.slice(1,5); // 作用效果与substring相同,但可以使用负数。不会自动比较前后大小值

str.toUpperCase(); // 转化为大写
str.toLowerCase(); // 转化为小写

str.split('.', 2); // 将字符串切割为数组,第一个值写切割的内容(如果选择空,那么将得到长度为一的一整个数组,如果为''那么将会把每个字符切割,第二个值写得到的数组个数,从前往后,后面多余的会被舍弃。

replace(被替换的字符,新的替换用字符)

var arr = [ 'www', baidu', 'com' ];
arr.join('aaa'); // 'www.baidu.com' 与上面的split相互使用,用来把数组连接为字符串。

josn
a={name:'ssasd',neir:555}
使用for (var i in a){
}来进行循环

数组的添加与删除
会改变数组

var arr = [ 1,2,3 ];

alert( arr.push( 'abc' ) ); 向最后添加abc字符串,返回值为数组长度
alert(arr.pop()); 删除最后一个字符串,返回值为被删除的字符串

alert( arr.unshift( 0 ) ); 向开头添加内容,返回数组长度 // IE 6 7 不支持 unshift 返回值
alert(arr.shift()); 删除第一个字符串,返回值为第一个字符串。

arr.splice( 0 , 0, 'aaaaaa')多项功能 第一个为选择位置,第0位,第二个0为删除个数,第三个位添加的内容
返回值为被删除的值

数组去重小例子
var arr = [ 1,2,2,4,2 ];

for ( var i=0; i<arr.length; i++ ) {
for ( var j=i+1; j<arr.length; j++ ) {
if ( arr[i] == arr[j] ) {
arr.splice( j, 1 );
j--;
}
}
}

sort排序方法
arr.sort(); 默认为比较字符编码大小进行排序,能整理字母
会改变原数组,返回本身

数字排序需要加函数
arr2.sort(function( a, b ) {
return a - b;
});

排序带px单位的值

arrWidth.sort(function ( a, b ) {
return parseInt(a) - parseInt(b);
});
随机排序 使用random随机数
arr.sort(function ( a, b ) {
return Math.random() - 0.5;
});

取随机值
var x = 3;
var y = 49;
// alert( Math.round( Math.random()*(y-x) + x ) );

// 0~x
// alert( Math.round( Math.random()*x) );

// 1~x
alert( Math.ceil( Math.random()*x) );向上取整数

合并多个不同的数组,使用concat
arr1.concat( arr2, arr3 )

使字符串倒着输出
arr1.reverse();

时间设置
var myTime = new Date();
var iYear = myTime.getFullYear();
var iMonth = myTime.getMonth()+1;
var iDate = myTime.getDate();
var iWeek = myTime.getDay();
var iHours = myTime.getHours();
var iMin = myTime.getMinutes();
var iSec = myTime.getSeconds();

floor 向下取整
// 天:Math.floor(t/86400)
// 时:Math.floor(t%86400/3600)
// 分:Math.floor(t%86400%3600/60)
// 秒:t%60

var t = Math.floor((iNew - iNow)/1000);
// 毫秒 - 秒
var str = Math.floor(t/86400)+'天'+Math.floor(t%86400/3600)+'时'+Math.floor(t%86400%3600/60)+'分'+t%60+'秒';

各类在if中的真假问题
a是假 var a=0;
b是真 var b='0';
c是假 var c='';
d是假 var d=null;
e是假 var e=undefined;
f是真 var f=[];
g是真 var g={};
h是真 var h=function(){};

ECMAScript:标准、核心
HTML 标签类型:block、inline、inline-block、table……
JS中的数据类型:数字、字符串、布尔、函数、对象(obj、[]、{}、null)、未定义

parseInt(num) == parseFloat(num)取整与取余数

isNaN(); // true false
// 判断某些值是不是数字
// 不喜欢数字、讨厌数字

查找id为id的元素
getElementById('id')

找到第x个div
getElementsByTagName('div')[x]

改变对象的clsaa
obj.className='class'

获取元素最终属性值的方法(以下写法解决了大部分兼容性问题)obj为对象,attr是具体属性例如‘width’
function getStyle ( obj, attr ) { return obj.currentStyle?obj.currentStyle[attr] : getComputedStyle( obj )[attr]; }

改变对象多个css属性的写法
oDiv.style.cssText = ' width:200px; height:200px; '

各种判断方法
if(){}else if(){}else if(){}else if(){}else{} 如果内容只有一行允许不加花括号,但是降低了可读性。

switch(x){
如果x等于?
case 1: 执行语句1;
break;跳出,不再执行下面语句
case 2: 执行语句2;
break;
default: 执行语句3;
(如果都不符合那么可以写入default,执行语句3,可以不写)

三元运算,极度简化的判断
例如:x?a:b 如果x成立,那么执行a,否则执行b b可以用void:0代替(说明为空)

使用与&&或||进行简化判断例如
a&&b 如果a成立,那么输出执行或输出b 如果a不成立,直接输出false
a||b 如果a成立,那么输出 true 如果a不成立那么输出b

this的认知
this : 这个
this: 指的是调用 当前 方法(函数)的那个对象

return 返回值
数字、字符串、布尔、函数、对象(元素\[]\{}\null)、未定义
1) 函数名+括号:fn1() ==> return 后面的值;
2) 所有函数默认返回值:未定义;
3) return 后面任何代码都不执行了;

当函数的参数个数无法确定的时候:用 arguments
arguments => [ 1,2,3 ] —— 实参的集合

定时器
var timer = setInterval( 函数, 毫秒 );
clearInterval( timer );

setTimeout()
clearTimeout()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: