javascript学习整理一

1、数据类型:

undefined, null, boolean, object, number, string,

2、typeof 操作符
返回字符串: string, boolean, undefined,function, object, number,typeof操作符的缺陷是: Chrome7 以及之前的版本,正则表达式的typeof返回的是function,其他的会返回object。

typeof(XXXX)// typeof是操作符不是函数,所以()可有可无
typeof   XXX   
typeof null     // 返回object,迷惑吧,null被认为是一个空对象值, null是指一个空对象指针
alert(null == undefined)   // 返回true   因为undefined是派生于null

3、数据类型转换返回结果表

//  表格中的定义其实是js做隐式转换很有作用,字符串testBoolean被偷偷转换成true
let testBoolean = '88888';
if (testBoolean ) {
alert('进入true判断');
}     // 弹出对话框 “进入true判断”
数据类型转化为true的值转化为false的值
Booleantruefalse
String任何非空字符串" " 空字符串
Number非0数字值0或者NAN
Objext任何对象null
Undefinedundefined

4、isNaN()函数

//  在基于对象调用isNaN()函数时候,会首先调用对象的valueOf()方法,然后确认该方法返回的值是否可以转化成数值,如果不能,前面返回的值再调用toString()方法,看其返回值。
alert(isNaN(NaN))   // true
alert(isNaN(10))   // false     能转化成10
alert(isNaN("10"))   // false     能转化成10
alert(isNaN("XXXX"))   // true     不能转化成数值
alert(isNaN(true))   // false     能转化成1

5、转化成数值的函数(Number(), parseInt(), parseFloat())
parseInt()相对于Number()来说能转化十六进制,八进制到十进制,但是es5后八进制前面的0会默认去掉,并不是以往的那样算法了,后来为了解决这个问题,对parseInt()入参做了修改,如let num = parseInt(“oxAF”, 16);16代表16进制

5、toStirng()用法

let num = 10;
alert(num.toString())    // '10'      默认是10进制
alert(num.toStirng(2))   // '1010'   转化成2进制的字符串
alert(num.toStirng(8))   // '12'     转化成8进制的字符串
alert(num.toStirng(null))   // 'null' 
alert(num.toStirng(undefined))   // 'undefined'    

6、sort()的用法

// JavaScript中数组的sort()方法主要用于对数组的元素进行排序。其中,sort()方法有一个可选参数。但是,此参数必须是函数。 数组在调用sort()方法时,如果没有传参将按字母顺序(字符编码顺序)对数组中的元素进行排序,如果想按照其他标准进行排序,就需要进行传一个参数且为函数,该函数要比较两个值,并且会返回一个用于说明这两个值的相对顺序的数字。
var arr = [{'name': '张三', age: 26},{'name': '李四', age: 12},{'name': '王五', age: 37},{'name': '赵六', age: 4}];
var objectArraySort = function (keyName) {
 return function (objectN, objectM) {
  var valueN = objectN[keyName]
  var valueM = objectM[keyName]
  if (valueN < valueM) return 1
  else if (valueN > valueM) return -1
  else return 0
 }
}
arr.sort(objectArraySort('age'))
console.log(arr) 

6、js操作方法
(1)concat()

let  test1 = ['1111', '2222'];
let   test2 = test1.concat("333", ['444', '555'])
alert(test1)    // ['1111', '2222']
alert(test2)    //  ['1111', '2222', '444', '555']

(2) slice()

let  test1 = ['1111', '2222', '3333','4444'];
let test2 = test1.slice(1);    // 2222,3333,4444
let test3 = test1.slice(1,3);    // 2222,3333

(3) splice()

let  colors = ['red', 'green', 'blue'];
let  removed= colors.splice(0,1);    
alert(colors); // green, blue
alert(removed); // red

removed= colors.splice(1,0,'yellow', 'orange')
alert(colors);   // green,yellow, orange,blue
alert(removed);    //返回空值

removed= colors.splice(1,1,'red', 'purple')
alert(colors);   // green,red,purple, orange,blue
alert(removed);    // yellow

7、迭代方法
(1) every() 、 filter() forEach() map() some()

  let numbers = [1,2,3,4,5,6,7,8]
  let result = numbers.every(temp =>  temp > 2)    // false 有一个不符合条件就false
  let result2 = numbers.some(temp => temp > 2)  // true  存在一个符合条件就是true
  let result3 = numbers.filter(temp => temp > 2)  // [3, 4, 5, 6, 7, 8]
  let result4 = numbers.map(temp => temp * 2)     // [2, 4, 6, 8, 10, 12, 14, 16]
  numbers.forEach( temp => {console.log('rrr', temp)})    // 相当于for循环,在内部操作

8、并归方法
reduce(), reduceRight()

let  arrays = [1,2,3,4,5,6,7,8]
let sum = arrays.reduce(function(prev, cur, index, array) { return  prev + cur})    // 36  prev接受之前的和
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值