JavaScript散乱(二,基础)
2018-06-02 本文已影响4人
强某某
js补充
- js代码写在href属性中
<a href="javascript:;">点击</a>
<a href="javascript:alert('测试');">点击</a>
说明:都会阻止a默认跳转,第二个会输出alert
- typeof的返回值都是字符串
- null=>typeof 输出object
- typeof undefined 输出undefined
- script一旦引入外部文件,就不能编写代码了,会被浏览器忽略,可以创建一个新的script标签编写代码
- 强制类型转换
- 其他类型转string
- null和underfined没有toString()方法,强制转换会报错,但是可以通过String函数,转换这两个类型,输出"null","underfined"
- 对于Number和boolean类型,toStinrg()和String等效
- 其他类型转Number
- 其他类型转Number,利用Number().如果字符串非数字,转换输出值是NaN;空串则转换结果为0;布尔值true转为1.false转为0;null转数字是0,underfined转数字结果是NaN
- 专门用来处理字符串转Number,parseInt/parseFloat,例如Number("123px")结果是NaN,但是parseInt会输出123,会提取有效的数字转换为Number(遇到第一位非数字的字符结束) 。如果对非string使用parseInt/parseFloat,会先将其转成string在操作,例如:parseInt(true)结果就是NaN.
- parseInt("070",10).指的是传递的参数一是按照十进制转换,即使0开头代表八进制。结果还是10。参数二是对参数一进制的说明。
- 其他类型转布尔
- 使用Boolean()
- 数字转布尔值:NaN/0 false,其余都是true
- 字符串转布尔值,除了空串,其余都是true
- null/underfined 是false
- 其他类型转string
- 算术运算符
对非Number类型值就行运算(除了加法),会先转成Number类型在运算
* +
- 任何值和NaN做运算,结果都是NaN
- 两个字符串相加,则会进行拼接,并返回字符串,"123"+"456"=》"123456"
- 任何值和字符串进行加法运算,都会先转换成字符串,然后再和字符串做拼接的操作。
* -/%
- 100-"1"=>99
- 100/"10"=>10
- 100"0.1"=>10
> 除了+其他操作符都是先转成Number再进行操作
- 关系运算符
大于,小于,等于,大于等于,小于等于:
- 对于非数值进行比较时,会将其转成数字然后比较
- 如果符号两侧都是字符串,不会转成数字比较,而是分别比较字符串中字符的Unicode编码("11"<"5" true)
;console.log("1241412"<+"5");//false,因为+是隐式转换,两边不在都是字符串
- 相等运算符
- ==(不会比较数据类型)
- underfined==null true(underfined衍生自null)
- null==0 false
- NaN不和任何数据相等(包括其本身),通过isNaN()判断数据是否是NaN
- ===(会比较数据类型)
- 还有!=和!==
- ==(不会比较数据类型)
- break和continue(用于退出switch或循环语句(不能在if里面使用))
- break:break默认停止最近的循环,但是可以通过类似java的label停止指定的循环
- continue: 跳过当前循环