JavaScript是一门弱类型语言,在JavaScript中公告变量不需指定类型, 对变量赋值也没有类型检查,同时JavaScript允许隐式类型转换。
通过String()
,toString()
,Number()
,parseInt()
,parseFloat()
,Boolean()
等函数强制转换
Boolean(0) // => false - Boolean Boolean(new object()) // => true - Boolean Number(undefined) // => NaN - NumberNumber(null) // => 0 - NumberString(null) // => “null” - String5.toString() // => ‘5’ - StringparseInt('5') // => 5 - Number
+、-、*、/、%
let a = '5'; let b = 'a'; let c = 5; console.log(a%5); // => 0 - Number console.log(a/5); // => 1 - Number console.log(a*5); // => 25 - Number console.log(a-5); // => 0 - Number console.log(a+'5'); // => '55' - String console.log(b/5); // => NaN - Number console.log(c+5); // => 10 - Number console.log(c+true); // => 6 - Number
+
号在进行隐式转换的时候,假如在任何一边有字符串的话,会当做拼接字符串来解决,而假如是布尔值的话:true == 1;false == 0;
==
==
的时候,会对等号两边的数据进行类型转换比照if、while
var obj = {}; if(obj){ while(obj); }
alert
会将数据转换为Stringnumber
string
boolean
undefined
symbol
object
typeof null === 'object'function
document.ready和onload的区别为:加载程度不同、执行次数不同、执行速度不同。
===
是严格等于,必需是等号两边的值完全相等,数据类型也完全相等的时候才相等、==
是非严格等于,会先对等式两边进行隐式类型转换,而后再进行比照
==
非严格等于的类型转换===
严格等于isNaN()
来判断)body后的style标签的优先级要高于body前的style标签
写在body标签后因为浏览器以逐行方式对html文档进行解析,当解析到写在尾部的样式表(外联或者写在style标签)会导致浏览器中止之前的渲染,等待加载且解析样式表完成之后重新渲染,在IE浏览器下可能会出现FOUC现象(即样式失效导致的页面闪烁问题)
假如本文对您有帮助,可以看看本人的其余文章:
前台常见面试题(十二)@郝晨光
前台常见面试题(十一)@郝晨光
前台常见面试题(十)@郝晨光