杀破狼原唱怎么没了

JavaScript09

杀破狼原唱怎么没了,第1张

截至2021年11月,杀破狼原唱还在,但是因为不红没有什么消息

《杀破狼》是JS演唱的一首歌曲,是电视剧《仙剑奇侠传》的片头曲。这首歌曲由陈忠义作词、作曲,收录在2005年发行的《仙剑奇侠传电视剧原声带》中。

JS(Justin&Sophia),中国台湾流行乐组合,由陈忠义、陈绮萱组成。1999年,陈忠义与陈绮萱组成“GoGo&MeMe”,并推出组合首张音乐专辑《SayForever》。

2004年,签约台湾华研国际音乐股份有限公司,并改名为“JS”;同年8月,推出组合第二张音乐专辑《遇见未来》。

2006年,JS与台湾华研国际音乐股份有限公司的合约期满后,并创办了“音思拜耳Inspire音乐工作室”;同年7月,推出组合首张EP专辑《Rosso苏菲亚的盛宴》。

2008年,凭借专辑《此生最美的风景》入围“新加坡金曲奖”最佳组合奖。

2009年,推出组合第二张精选辑《TheJSMoment》。

2012年,推出组合第四张音乐专辑《听见》。

2013年,凭借专辑《听见》入围“第24届金曲奖”最佳演唱组合。

2014年12月21日,在上海举行“JSXmas演唱会”。

2015年3月,推出组合第五张EP专辑《这就是爱》。

歌曲鉴赏

《杀破狼》是一首好听的歌曲,JS用轻声的低吟成功诠释了这首歌曲。辗转蛰伏的曲风将《仙剑奇侠传》中穿越时空的景象完美的展现在听众面前,逍遥御剑飞行,穿越时空拯救灵儿一幕幕仿佛在歌中重现。

整首歌曲大气滂沱,高潮叠复,浓重的凄凉恣意疯长,古战场的壮阔苍凉、凄清孤绝一览无余,这首歌曲让人在无限的虚幻中意犹未尽。

js中加号+ 运算符可以用在一元运算 与 二元运算 

1,  一元运算请况

     语法:  + Expression

                +'号运算符作为一元运算符时,Expression将进行 ToNumber() 操作

    经常使用 +a 类似的形式对变量a进行类型转换 ,如下:

     const a = '1'

      +a  // 输出为1 (变为number类型);

ToNumber( argument )转换方式:

Undefined:  return NaN,

Null:return +0,

Bollean: true return 1,false return 0,

Number:  return value

String:  若字符串为纯数字时返回转换后的数字;非纯数字返回NaN

Symbol  抛出 TypeError 异常

Object   进行以下步骤:

             1.先进行ToPrimitive(argument, hint Number)得到rs;   2.然后返回 ToNumber(rs)的结果。

语法: ToPrimitive ( input [, PreferredType] )

参数:

①参 input :传入的值。

②参数 PreferredType :可选,需要被转换的类型。 '+'加号作为一元运算符时,此值为“number”;而作为二元运算符时,未传递此值,以默认的“default”代替。

2. 二元运算符

2.1 解析步骤

简单概括为下面4个步骤:

1) 值进行GetValue()操作。

2) 值进行ToPrimitive()操作,

3) 若一方为String类型,2个值都进行ToString()转换,最后进行字符串连接操作。

4) 若都不是String类型,2个值都进行ToNumber()转换,最后进行算数加法运算。

2.2.1 方法签名

语法: ToPrimitive ( input [, PreferredType] )

参数:

①参 input :传入的值。

②参数 PreferredType :可选,需要被转换的类型。'+'加号作为一元运算符时,此值为“number”;而作为二元运算符时,未传递此值,以默认的“default”代替。

2.2.2 解析说明

ToPrimitive()的详细解析过程可以看这里:

http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive

简化为以下步骤:

( PreferredType是为 非基础类型 决定是优先使用valueOf方法还是toString方法,对基础类型无效),指定为number优先使用valueOf方法,指定string,优先使用toString方法

1) 若input类型为原始值(如:Undefined、Null、Boolean、Number、String、Symbol),直接返回input的本身 。 直接忽略 PreferredType

2) 若input类型为object(如:Array、Object、Date),将根据第②个参数 PreferredType 的值进行以下操作:

就像之前讲的,'+'加号作为一元运算符时, 传递参数 PreferredType 的值为“number”;而作为二元运算符时,未传递此值时以默认的“default”代替。

在上面的图中,只看到 PreferredType 的值为“number” 或 “string” 时才进行解析,那么默认的“default”表示什么呢?

ps: Date类型内部重写了@@toPrimitive()方法,将“default”设置为“string”,而其他内置的对象都将“default”设置为“number” 。

Date.prototype[@@toPrimitive]:

http://www.ecma-international.org/ecma-262/6.0/#sec-date.prototype-@@toprimitive

2.3 示例

1) String + String

说明:进行字符串连接操作

'a' + 'b'// =>'ab'

'1' + '2'// =>'12'

2) Number + Number

说明:进行算数的加法操作

1 + 2// =>3

3) Number + String or String + Number

说明:Number类型的值先进行ToString()转换,随后再与另一个String类型的值进行拼接操作

1 + '0'// =>'10'

1 + '0a'// =>'10a'

'1' + 2// =>12

4) Array + String or Array + Number

说明:Array类型进行ToPrimitive()转换时,先执行valueOf(),因其返回一个object类型的值,所以又执行了toString()方法。

var tmpList = ['a', 'b', 'c']

tmpList.valueOf()// =>["a", "b", "c"]  输出自身

tmpList.toString()// a,b,c

// 1.Array + String

tmpList + 'd'// =>a,b,cd

// 2.重写Array的valueOf()方法,使其返回一个非object

Array.prototype.valueOf = function (e) {

    return this.join('-')

}

tmpList + 'd'// =>a-b-cd

5) Date + String or Date + Number

说明:上面已经讲过,Date类型重写了ToPrimitive(),所以先调用toString(),若返回值为object,再调用valueOf()。

var dt = new Date()

dt.valueOf()// =>1503501745901

dt.toString()// Wed Aug 23 2017 23:22:25 GMT+0800 (中国标准时间)

// 1.Date + String : dt直接使用了dt.toString()方法

dt + 'd'// =>Wed Aug 23 2017 23:22:25 GMT+0800 (中国标准时间)d

// 2.重写Date的toString()方法,使其返回一个object的值

Date.prototype.toString = function (e) {

    return { year: this.getFullYear() }

}

// 略过了 dt.toString(),调用了 dt.valueOf()

dt + 'd'// =>1503501745901d

End