js实用、常用方法function

常用function
Buffer.from()
const buf1 = Buffer.from('buffer');
console.log(buf1 );          //输出 : <Buffer 62 75 66 66 65 72>
console.log(buf1.toString());//输出 :  buffer
const buf1 = Buffer.from('buffer','base64');    //常用编码ascii  utf8  base64
console.log(buf1);//输出 :<Buffer 6e e7 df 7a>
substr substring
tostring  //number转string
substr(start,length) //截取字符串到需求长度
substring(start,end) //取开始到结束的内容 不包括第 end个索引。索引从0开始。
Math
 Math.ceil()  //向上取整
 Math.floor() //向下取整
 Math.round() //四舍五入
Math.random()//0-1(double)
Math.random() * 9   //
 Math.round(Math.random() * 9).toString()//随机整数
Math.max(10, 20);   //  20   两个数之间的最大数
Math.pow(x,y)    //  可返回 x 的 y 次幂的值。
toFixed()
NumberObject.toFixed(num)    //把 NumberObject 四舍五入为指定num位的小数。
stringify parse
//JSON.stringify() 方法用于将 JavaScript 值 对象或数组转换为 JSON 字符串
JSON.stringify(Data)

var str = {"name":"菜鸟教程", "site":"http://www.runoob.com"}
 document.write( str );        //输出 : [object Object]
str_pretty1 = JSON.stringify(str) 
document.write( str_pretty1 );//输出 :{"name":"菜鸟教程","site":"http://www.runoob.com"}


//JSON.parse(data)  数据转换JSONObject。
var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');
document.write( obj );   //输出 : [object Object]
replace
//返回一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

string.replace(regexp/substr,replacement)

三个参数:
let string='123456'
string.replace(0,1,"a")
console.log(string)  //输出  a23456
match
//字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
stringObject.match(searchvalue)
stringObject.match(regexp)
//返回值:存放匹配结果的数组
Date() . getTime() 、时间格式化
var now = Number(new Date().getTime());// 得到的是毫秒数 时间戳

日期格式化  2021 02 01 12 36 02
 let R=getRandomTime();
    function getRandomTime() {
        // 当前时间作为订单号和流水号
        //now = Number(new Date().getTime()),//时间戳
        let Year = new Date().getFullYear().toString(),
            Month = ("0" +(new Date().getMonth() + 1).toString()).slice(-2),
            day = ("0" + new Date().getDate().toString()).slice(-2),
            Hours = ("0" + new Date().getHours().toString()).slice(-2),
            Minutes = ("0" + new Date().getMinutes().toString()).slice(-2),
            Seconds = ("0" + new Date().getSeconds().toString()).slice(-2);
      let  time =Year+Month+day+Hours+Minutes+Seconds
       //let time =Year+"-"+Month+"-"+day+" "+Hours+":"+Minutes+":"+Seconds
        return time
    }

split join
split()   //用于把一个字符串分割成字符串数组。
join(',') //用于把数组中的所有元素放入一个字符串 元素是通过指定的分隔符(如:,)进行分隔的。返回字符串
slice
.slice(start,end)     //方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。不包括end
.slice(-2)            //-2 指倒数第二个字符
push() unshift()
unshift() // 在数组起始位置添加元素    
push() // 将新项添加到数组末尾  
test()
 //test() 方法用于检测一个字符串是否匹配某个模式.   
RegExpObject.test(string)   //返回值为 true  false
parseInt
parseInt(string, radix)  //解析一个字符串,并返回一个整数
Numer()
Number()   //如果是布尔值,true和false会被转换为1和0
Number(null) // 0
Number(undefined) // NaN
Number('as') // NaN
Number("010") // 10 (前导的0会被忽略)
Number('as')===NaN //false    js规定 NaN不等于NaN
isNaN
isNaN()  //参数是数字返回 false   非数字值 true
trim()
string.trim() //方法用于删除字符串开头和结尾的空格
isInteger( )
isInteger(value)   //用来检查数字是否是整数 
lastIndexOf
 string.lastIndexOf(searchvalue,start) //区分大小写  字符串值最后出现的位置
indexof()
stringObject.indexOf(searchvalue,fromindex)
// 返回某个指定的字符串值在字符串中首次出现的位置 检索从0开始  区分大小写
sort
[5,6,4,1,9].sort()   //升序
[5,6,4,1,9].sort(function(a, b){return b - a})  //降序  [9, 6, 5, 4, 1]
includes
includes() //方法用于判断字符串是否包含指定的子字符串。   
[5,8,177].includes(7) false
"5,8,177".includes(7) true
concat()
arrayObject.concat(arrayX,arrayX,......,arrayX)
//连接两个或者多个数组  该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
function 和 ()=>{} 的区别
function fn1(x) {
		return function(y) {
			return x + y;
		}
	}

let fn1 = x => y => x + y;
 
function的级别最高 箭头函数定义函数的时候,需要var关键词
箭头函数一定要定义于调用之前

箭头函数没有自己的this,它里面的this是继承所属上下文中的this,而且使用call与apply都无法改变

普通函数的参数是arguments,而箭头函数是arg

箭头函数不能使用new生成构造函数,因为箭头函数没有prototype,而construct在prototype里面
break continue 区别
//break 语句“跳出”循环。
//continue 语句“跳过”循环中的一个迭代。

for (i = 0; i < 10; i++) {
  if (i === 3) { break; }
  text += "数字是 " + i + "<br>";
}
//   数字是 0  数字是 1   数字是 2

for (i = 0; i < 10; i++) {
  if (i === 3) { continue; }
  text += "数字是 " + i + "<br>";
}
//这个循环在 i=3 时跳过这一步:

数字是 0
数字是 1
数字是 2
数字是 4
数字是 5
数字是 6
数字是 7
数字是 8
数字是 9
Typeof
//typeof运算符用于判断对象的类型,但是对于一些创建的对象,它们都会返回'object'
console.log(typeof a);    //'undefined'
console.log(typeof(true));  //'boolean'
console.log(typeof '123');  //'string'
console.log(typeof 123);   //'number'
console.log(typeof NaN);   //'number'
console.log(typeof null);  //'object'    
var obj = new String();
console.log(typeof(obj));    //'object'
instanceof()
//判断对象的具体类型  返回布尔值
arr = [1,2,3];
if(arr instanceof Array){
    document.write("arr 是一个数组");
} else {
    document.write("arr 不是一个数组");
}
Promise
//JavaScript 提供原生的Promise构造函数,用来生成 Promise 实例
var promise = new Promise(function (resolve, reject) {
  // ...
  if (/* 异步操作成功 */){//异步代码执行成功   才会调用resolve(...)  
    resolve(value);
  } else { /* 异步操作失败 */
    reject(new Error());
  }
});
promise.then(onFulfilled, onRejected)
//对于已经实例化过的 promise 对象可以调用 promise.then() 方法,传递 resolve 和 reject 方法作为回调。
//promise.then() 是 promise 最为常用的方法。
async
 // async隐式地返回一个promise   使用aync/await的话,catch能处理JSON.parse错误 可以同时处理同步和异步错误
 //检测用户名
    async function checkName(req, userName) {
        return await new Promise((resolve, reject) => {
            var phoneReg = /^\w{11}$/;
            if (!phoneReg.test(userName)) {
                resolve(0)
                return false;
            }
           var sql = "select count(*) as count from `user` where UserName=@userName;";
           req.newExamSystem.queryParam(sql, {userName: userName}, function (err,result){
                if (err) { 
                } else {
                    resolve(result[0].count)
                }
            })
        })
    }
await

await关键字只能用在aync定义的函数内 只要await声明的函数还没有返回,那么下面的程序是不会去执行的 等待返回再去执行

const demo = async ()=>{
    let result = await new Promise((resolve, reject) => {
      setTimeout(()=>{
        resolve('我延迟了一秒')
      }, 1000)
    });
    console.log('我由于上面的程序还没执行完,先不执行“等待一会”');
    return result;
}
// demo的返回当做Promise
demo().then(result=>{
  console.log('输出',result); // 输出 我延迟了一秒
})

const makeRequest = async () => {
        try {
            // this parse may fail
            const data = JSON.parse(await getJSON())
            console.log(data)
        } catch (err) {
            console.log(err)
        }
    }

    const makeRequest = async () => {
        const value1 = await promise1()
        const value2 = await promise2(value1)
        return promise3(value1, value2)
    }
bodyParser.json( ) bodyParser.urlencoded( ) 区别
bodyParser.json( )   
//解析req.body的数据  解析json格式的中间件。
//这个中间件能接受任何body中任何Unicode编码的字符。支持自动的解析gzip和 zlib。
bodyParser.urlencoded()  
//解析form表单提交的数据 body中的urlencoded字符, 
//只支持utf-8的编码的字符。同样也支持自动的解析gzip和 zlib
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值