完整的JavaScript是由ECMAScript(语法)、DOM和BOM组成
JavaScript是一种脚本语言
JavaScript是事件驱动的
JavaScript是独立与平台的
JavaScript代码执行是不需要编译的。
typeof的使用方法有两种:
(1)typeof 变量
(2) typeof(变量)
typeof的返回值有Undefined、Null、Boolean、Number、String、Object,但是返回值的类型是String类型。上面的返回值Null,Boolen...都是String类型。
var name="zheng";
console.log( typeof( name ) );
console.log(typeof name);
undefined派生自null,所以undefined==null返回的结果是true。
一般都是空对象的变量才设置为null。
var person=null;
console.log( 20-"abc" ); //输出:NaN 非数值
console.log( 20/NaN ); //输出:NaN 非数值
console.log( typeof(20-"abc") ); //输出:Number
isNaN(a); 判断a是否是非数值。非数值属于number基本数据类型。
var a="20"; /*字符串*/
console.log(isNaN(a)); /*isNaN()会先把对象尝试转化为number,如果可以就是number,如果不行就是原来数据类型。所以这里的值:false*/
console.log( isNaN(18) ); false;
console.log( isNaN("abc"); true;
1、NaN:即非数值(Not a Number)是一个特殊的数值
2、任何涉及NaN的操作都会返回NaN
3、NaN与任何值都不相等,包括NaN本身
var c; /*未定义数据类型 undefine*/
console.log(isNaN(c)); isNaN(c)返回值是布尔值,而不是undefine。
var name="zheng";
var d=Number(name); /*字符串无法转换为 Number数据类型,所以返回非数值NaN。*/
console.log( d); /*输出:NaN 非数值*/
var a="10px"; /*这个 a 必须以数字开头,如果以非数字开头就会返回NaN。*/
var b="abc10px"; /*这个 b 必须以数字开头,如果以非数字开头就会返回NaN。*/
console.log(parseInt(a)); /*输出10*/
console.log(parseInt(b)); /*输出:NaN 非数值*/
console.log(parseInt("0xf"));/*输出:15,“0xf” 是一个十六进制数 */
不建议使用Number()进行直接转换,而应该使用parseInt() 和 parseFloat() 前提是变量必须以数字开头。
var a="1.356px";
var b="10pxa234bc";
var c="01234";
console.log(parseInt(a)); /*输出:1*/
console.log(parseFloat(a)); /*输出:1.356*/
console.log(parseFloat(b));/*输出:10 */
console.log(parseFloat(c));/*输出:1234 */
Number( ) 函数把对象的值转换为数字。参数是必需的,并且为JavaScript 对象。
isNaN() 函数用于检查其参数是否是非数字值,不能把非数值转化成数值。
var b="10pxa234bc";
console.log(parseFloat(b));/*输出:10 。parseFloat() parseInt() Number() 都可以对 var b 进行转化*/
var email="304523@qq.com";
var a="1.356px";
console.log(Number(a)); /*输出:NaN Number()只对纯数字字符串才可以转为number类型。否则都返回NaN非数值 */
console.log(parseFloat(a)); /*输出:1.356*/
console.log(Number(email));/*输出:NaN Number()只对纯数字字符串才可以转为number类型。否则都返回NaN非数值 */
var b="1013.11";
console.log(Number(b));/*输出:1013.11 Number()只对纯数字字符串才可以转为number类型。否则都返回NaN非数值 */
var f;
var g=null;
console.log(String(f)); /*强制转化不会报错,输出:undefine*/
console.log(f.tostring(f)); /*报错。在不知道变量什么值的情况,只使用String()进行转化*/
console.log(String(g)); /*强制转化不会报错,输出:null*/
console.log(f.tostring(g)); /*报错。在不知道变量什么值的情况,只使用String()进行转化*/
除了0是false,其他全都是true.
var a=0;
var b=1324;
console.log(Boolean(a)); /*false*/
console.log(Boolean(b)); /*true*/
除了var=""是false, 这里是没有空格的。其他所有都是true,包括空格也是true。
var a=""; /*没空格*/
var b=" "; /*有空格*/
console.log(Boolean(a)); /*false*/
console.log(Boolean(b)); /*true*/
值为:nul 或者 undefine 未定义,转为Boolean()时,返回false。
var a;
var b=null;
console.log(Boolean(a)); /*false*/
console.log(Boolean(b)); /*false*/
意义重大:
if(a){...} 如果a=true,就执行里面操作。这里的a=false。
=====================
var a=5;
var b="abcd"
console.log(a*b); /*返回NaN,非数值*/
------
俗称:隐式类型转换
var a=5;
var b=10;
console.log(a*b); /*返回50,进行乘时,会自动把变量b转换成number数据类型。*/
原文:https://www.cnblogs.com/Knowledge-is-infinite/p/10781218.html