小窥TypeScript:字符串新特性

1)多行字符串

原js代码:

var str1 = "aaaa\nbbbbbb\ncccc\n";

var str2 = "aaaa\n" + 
           "bbbbbb\n" + 
           "cccc\n";

用ts代码来写:

var str1 = `aaaa
bbbbbb
cccc
`

这个符号是键盘上1左边的那个键。

2)字符串模板

原js代码:

var str1 = "hehehehe";
var getstr = function () {
    return "hahahaha";
};
console.log("" + str1);
console.log("" + getstr());

用ts代码来写:

var str1 = "hehehehe";
var getstr = function () {
    return "hahahaha";
}
console.log(`${str1}`);
console.log(`${getstr()}`)

可以直接在字符串里调用变量和方法,使用${}框起来,中间加上了变量名或者方法名。

该调用方法仅适合用`符括起来的字符串。

3)自动拆分字符串

原js代码:

var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
    return cooked;
};
function func1(a, b, c) {
    console.log(a);
    console.log(b);
    console.log(c);
}
var aa = "hahahaha";
var getb = function () {
    return 33;
};
func1(__makeTemplateObject(["yoyoyoyo ", ", lalala", ""], ["yoyoyoyo ", ", lalala", ""]), aa, getb());

用ts代码来写:

function func1(a, b, c) {
    console.log(a);
    console.log(b);
    console.log(c);
}
var aa = "hahahaha";
var getb = function () {
    return 33;
}
func1`yoyoyoyo ${aa}, lalala${getb()}`

func1调用自动拆分给三个参数的时候,没有用到(),而是使用了`符号,这时会将字符串里的字符全部分配给第一个参数,而第一个变量分配给第二个参数,第二个变量法分配给了第三个参数。

控制台运行结果:

Array(3)0: "yoyoyoyo "1: ", lalala"2: ""length: 3raw: Array(3)0: "yoyoyoyo "1: ", lalala"2: ""length: 3__proto__: Array(0)__proto__: Array(0)
VM55:7 hahahaha
VM55:8 33

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值