javascript字符串、日期和数学

2019-01-02  本文已影响0人  原上的小木屋

多行字符串的声明有哪几种常见写法?

  1. 如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠。
var longString = "Long \
long \
long \
string";
  1. 连接运算符(+)可以连接多个单行字符串,用来模拟多行字符串。
var longString = 'Long ' +
 'long ' +
 'long ' +
 'string';

以下代码输出什么?如何声明 str 让 console.log(str)输出 C:\Users\Document\node\index.js?

var str = 'C:\Users\Document\node\index.js'
console.log(str.length)

对于字符串var str = 'hello baidgu.com'

  1. 获取 str 下标为3的字符
  1. 获取 str 下标为4的字符的 Ascii 码
  1. 截取字符g到末尾的字符串
  1. 从字符o开始,截取长为4个字符的字符串
  1. 获取第一个 l的下标

写一个函数,生成一个随机 IP 地址,一个合法的 IP 地址为 0.0.0.0~255.255.255.255

function getRandIP(){
    var a=''
    for(var i=0;i<4;i++){
        a=a+Math.floor(256*Math.random())+'.'
    }
    a=a.slice(0,-1);
    return a
}
var ip = getRandIP()
console.log(ip)  //63.120.52.131

写一个函数,生成一个随机颜色字符串,合法的颜色为#000000~ #ffffff。

function getRandColor(){
    var a=''
    for(var i=0;i<6;i++){
        a=a+Math.floor(16*Math.random()).toString(16)
    }
    return "#"+a
}
var color = getRandColor()
console.log(color)   // #d89e4b

写一个函数,返回从min到max之间的 随机整数,包括min不包括max 。

function retnumber(max,min){
    if(max>min){
        return  Math.ceil(min)+Math.floor((Math.floor(max)-Math.ceil(min))*Math.random());}
    else{
        return  Math.ceil(max)+Math.floor((Math.floor(min)-Math.ceil(max))*Math.random());
    }}

写一个函数,生成一个长度为 n 的随机字符串,字符串字符的取值范围包括0到9,a到 z,A到Z。

function getRandStr(len){
  var a=''
  var b='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
  for(var i=0;i<len;i++){a=a+b[Math.floor(Math.random()*b.length)]}
  return a
}
var str = getRandStr(10); // FYZKjXnXeL

写一个函数,参数为时间对象毫秒数的字符串格式,返回值为字符串。假设参数为时间对象毫秒数t,根据t的时间分别返回如下字符串:

function friendlyDate(time){
    if(time/1000<60){
        t='刚刚'
    }
    else if(time/1000/60<60){
        t='3分钟前'
    }
    else if(time/(1000*60*60)<24){
        t='8小时前'
    }
     else if(time/(1000*60*60*24)<30){
        t='3天前'
    }
     else if(time/(1000*60*60*24*30)<2){
        t='2个月前'
    }
    else if(time/(1000*60*60*24*30)>12){
        t='八年前'
    }
    return t
}

实现一个reduce函数,作用和原生的reduce类似下面的例子。

var sum = reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0); => 6
function reduce(list){
    if(list.length==1){return list[0]}
    else{list=([list[0]+list[1]]).concat(list.slice(2));return reduce(list)}
}

实现一个flatten函数,将一个嵌套多层的数组 array(数组) (嵌套可以是任何层数)转换为只有一层的数组,数组中元素仅基本类型的元素或数组,不存在循环引用的情况。

flatten([1, [2], [3, [[4]]]]) => [1, 2, 3, 4];
function flatten(list){
    var newlist=[]
    for(var i=0;i<list.length;i++){
        if(Array.isArray(list[i])){newlist=newlist.concat(flatten(list[i]))}
        else{newlist.push(list[i])}
    }
    return newlist
}
上一篇 下一篇

猜你喜欢

热点阅读