JavaScript 实战指南

JavaScript 的语法

String - 是否是 string

typeof(str)=='string'

String - 字符串替换

两种区别:正则&常规

str.replace("需要替换的字符串","新字符串") 
str.replace(/需要替换的字符串/g,"新字符串")

比如:
"yyyy-MM-dd-hh-mm-ss".replace("-","/")
结果: "yyyy/MM-dd-hh-mm-ss"
"yyyy-MM-dd-hh-mm-ss".replace(/-/g,"/")
结果:"yyyy/MM/dd/hh/mm/ss"

综上:
常规的替换只会替换第一次匹配的字符,正则可替换全部

String - 字符串长度

var s = "String 类型长度";  //定义字符串
console.log(s.length);  //返回10个字符

String - 字符串截取

//    JS截取字符串可使用 substring()或者slice()
//
//    函数:substring()
//    定义:substring(start,end)表示从start到end之间的字符串,包括start位置的字符但是不包括end位置的字符。
//    功能:字符串截取,比如想从"MinidxSearchEngine"中得到"Minidx"就要用到substring(0,6)
//    例子:

var src="images/off_1.png";
alert(src.substring(7,10));
//弹出值为:off

//    函数:substr()
//    定义:substr(start,length)表示从start位置开始,截取length长度的字符串。
//    功能:字符串截取
//    例子:

    var src="images/off_1.png";
    alert(src.substr(7,3));
    //弹出值为:off

//    函数:split()
//    功能:使用一个指定的分隔符把一个字符串分割存储到数组
//    例子:

    str="jpg|bmp|gif|ico|png";
    arr=theString.split("|");
    //arr是一个包含字符值"jpg"、"bmp"、"gif"、"ico"和"png"的数组

//    函数:John()
//    功能:使用您选择的分隔符将一个数组合并为一个字符串
//    例子:

    var delimitedString=myArray.join(delimiter);
    var myList=new Array("jpg","bmp","gif","ico","png");
    var portableList=myList.join("|");
    //结果是jpg|bmp|gif|ico|png

//    函数:indexOf()
//    功能:返回字符串中匹配子串的第一个字符的下标

    var myString="JavaScript";
    var w=myString.indexOf("v");//w will be 2
    var x=myString.indexOf("S");//x will be 4
    var y=myString.indexOf("Script");//y will also be 4
    var z=myString.indexOf("key");//z will be -1

//    函数:lastIndexOf()
//    定义:lastIndexOf()方法返回从右向左出现某个字符或字符串的首个字符索引值(与indexOf相反)
//    功能:返回字符串索引值
//    例子:

    var src="images/off_1.png";
    alert(src.lastIndexOf('/'));
    alert(src.lastIndexOf('g'));
    //弹出值依次为:6,15

//    补充:substr 和 substring方法的区别
//    substr 方法
//    返回一个从指定位置开始的指定长度的子字符串。
//    stringvar.substr(start [, length ])
//    参数
//    stringvar
//    必选项。要提取子字符串的字符串文字或 String 对象。
//    start
//    必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
//    length
//    可选项。在返回的子字符串中应包括的字符个数。
//    说明
//    如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到 stringvar 的最后。
//    示例

//    下面的示例演示了substr 方法的用法。

    function SubstrDemo(){
        var s, ss;        // 声明变量。
        var s = "The rain in Spain falls mainly in the plain.";
        ss = s.substr(12, 5); // 获取子字符串。
        return(ss);        // 返回 "Spain"。
    }
//    substring 方法
//    返回位于 String 对象中指定位置的子字符串。
//    strVariable.substring(start, end)
//    "String Literal".substring(start, end)
//    参数
//    start
//    指明子字符串的起始位置,该索引从 0 开始起算。
//    end
//    指明子字符串的结束位置,该索引从 0 开始起算。
//    说明
//    substring 方法将返回一个包含从 start 到最后(不包含 end )的子字符串的字符串。
//    substring 方法使用 start 和 end 两者中的较小值作为子字符串的起始点。例如, strvar.substring(0, 3) 和 strvar.substring(3, 0) 将返回相同的子字符串。
//    如果 start 或 end 为 NaN 或者负数,那么将其替换为0。
//    子字符串的长度等于 start 和 end 之差的绝对值。例如,在 strvar.substring(0, 3) 和 strvar.substring(3, 0) 返回的子字符串的的长度是 3。

//    示例
//    下面的示例演示了 substring 方法的用法。

    function SubstringDemo(){
        var ss; // 声明变量。
        var s = "The rain in Spain falls mainly in the plain..";
        ss = s.substring(12, 17); // 取子字符串。
        return(ss); // 返回子字符串。
    }

String - 字符串转为整数

parseInit(str)

String - 字符串转为浮点数

parseFloat(str)

String - 字符串分割

// split() 方法用于把一个字符串分割成字符串数组。

stringObject.split(separator,howmany)

参数  描述
separator   必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

string - 字符串是否包含

var str = "123";
console.log(str.indexOf("3") !== -1 );  // true

json - 对象转 FormData

const formData = new FormData();
  Object.keys(params).forEach((key) => {
  formData.append(key, params[key]);
});

datetime -string 转为 Date

// iPhone 真机 new Date('2017-01-01') 返回的结果是 NaN。
// iOS new Date() 无法解析 - 符号,不过可以使用 /。

var t1="2017-05-12 00:13:53";
var dateBegin = new Date(d1.replace(/-/g, "/"));

datetime - 获取时间戳

var timestamp = Date.parse(new Date()); // 精确到秒
// OR
var timestamp = (new Date()).valueOf();
// OR
var timestamp = new Date().getTime();// 毫秒

datetime - 获取时间差

function timeFn(d1) { //d1作为一个变量传进来
    // 如果时间格式是正确的,那下面这一步转化时间格式就可以不用了
    var dateBegin = new Date(d1.replace(/-/g, "/"));//将-转化为/,使用new Date
    var dateEnd = new Date();//获取当前时间
    var dateDiff = dateEnd.getTime() - dateBegin.getTime();//时间差的毫秒数
    var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数
    var leave1=dateDiff%(24*3600*1000) //计算天数后剩余的毫秒数
    var hours=Math.floor(leave1/(3600*1000))//计算出小时数
    // 计算相差分钟数
    var leave2=leave1%(3600*1000) //计算小时数后剩余的毫秒数
    var minutes=Math.floor(leave2/(60*1000))//计算相差分钟数
    // 计算相差秒数
    var leave3=leave2%(60*1000) //计算分钟数后剩余的毫秒数
  var seconds=Math.round(leave3/1000)
  console.log(" 相差 "+dayDiff+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒")
  console.log(dateDiff+"时间差的毫秒数",dayDiff+"计算出相差天数",leave1+"计算天数后剩余的毫秒数"
  ,hours+"计算出小时数",minutes+"计算相差分钟数",seconds+"计算相差秒数");
}
var t3="2017-08-18 04:56:38";
timeFn(t3);

timestamp - 转 Date

date('Y-m-d H:i:s','1350052653');//得到的结果是2012-10-12 22:37:33
如果时间戳为 10 位,需要 * 1000

FormData - 转 Json 对象

var jsonData = {};
formData.forEach((value, key) => jsonData[key] = value);

array - 数组 - 判断是否是数组

Array.isArray(arr)

array - 数组长度

a.length
// 不过 length 是可控制的,如下
var a = [];  //声明空数组
a[100] = 2;
console.log(a.length);  // 返回101

// 又或者
var a = [1,2,3];  //声明数组直接量
a.length = 5;  //增长数组长度
console.log(a[4]);  //返回undefined,说明该元素还没有被赋值
a.length = 2;  //缩短数组长度
console.log(a[2]);  //返回undefined,说明该元素的值已经丢失

array - 数组转字符串

var a = [1,2,3,4,5,6,7,8,9,0];  //定义数组
var s = a.toString();  //把数组转换为字符串
console.log(s);  //返回字符串“1,2,3,4,5,6,7,8,9,0”
console.log(typeof s);  //返回字符串string,说明是字符串类型

datetime - 日期格式化

function formatDate(time,format='YY-MM-DD hh:mm:ss'){
    var date = new Date(time);

    var year = date.getFullYear(),
        month = date.getMonth()+1,//月份是从0开始的
        day = date.getDate(),
        hour = date.getHours(),
        min = date.getMinutes(),
        sec = date.getSeconds();
    var preArr = Array.apply(null,Array(10)).map(function(elem, index) {
        return '0'+index;
    });开个长度为10的数组 格式为 00 01 02 03

    var newTime = format.replace(/YY/g,year)
                        .replace(/MM/g,preArr[month]||month)
                        .replace(/DD/g,preArr[day]||day)
                        .replace(/hh/g,preArr[hour]||hour)
                        .replace(/mm/g,preArr[min]||min)
                        .replace(/ss/g,preArr[sec]||sec);

    return newTime;         
}
formatDate(new Date().getTime());//2017-05-12 10:05:44
formatDate(new Date().getTime(),'YY年MM月DD日');//2017年05月12日
formatDate(new Date().getTime(),'今天是YY/MM/DD hh:mm:ss');//今天是2017/05/12 10:07:45

datetime - 时间加减

var now = new Date();
alert("现在时间"+now.Format("yyyy-MM-dd"));

now.addDays(1);//当前时间加一天,如果参数为负数,则是一天前

now.addWeeks(-1);//当前时间的一周前,如果参数为正数,则是一周后
now.addMonths(-3);//同上,此处是对月份的加减

now.addYears(1);//同上,此处是对年份的加减

//添加天
Date.prototype.addDays = function (d) {
    this.setDate(this.getDate() + d);
};

//添加周
Date.prototype.addWeeks = function (w) {
    this.addDays(w * 7);
};

//添加月
Date.prototype.addMonths = function (m) {
    var d = this.getDate();
    this.setMonth(this.getMonth() + m);

    if (this.getDate() < d)
        this.setDate(0);
};
//添加年
Date.prototype.addYears = function (y) {
    var m = this.getMonth();
    this.setFullYear(this.getFullYear() + y);

    if (m < this.getMonth()) {
        this.setDate(0);
    }
};

判断变量类型

let a = '111';
console.log(typeof(a) == 'string')

转为字符串

var age = 11;
    var str1 = age.toString();              //字符串 “11”

    var found = true;
    var str2 = found.toString();           //字符串 “true”
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤奋的利昂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值