零基础入门-javaScript学习笔记之从基本数据类型学起

数字(number):与c/c++不同的是,JavaScript只有一个数字类型,它在内部被表示为64位浮点数。Js没有分离出浮点数与整数,11.0是一样的,不用担心数字到浮点数的截断问题等。

NaN是一个数值,它表示一个不能产生正常结果的运算结果。NaN不等于任何值,包括它自己。

事例:
var a = 1/2;
console.log(a);

                             

不会有截断问题等,不用担心短整形转换等问题。

 

字符串(string):与c++相同的是js的字符串可以被包在一对双引号中,可以包含0个或多个字符。\是转义字符。Unicode是16位字符集,js中所有字符都是16位的。

 

与c++不同的是js中可以用单引号表示包含字符串,没有字符类型,要表示一个字符只能创建一个字符的字符串。字符串在遇到\0的时候不会停止输出。而是输出一个空格。

 

布尔值:与c++类似

需要注意的是,js的所有非空对象在布尔环境中会被转换成为true。

var a =new Boolean(false);
if(a&& newObject()){
   
console.log(typeofa);
}

>>object

此时,a的类型为object,并非boolean,若将代码改成

var a Boolean(false);
if(a&& newObject()){
   
console.log(typeofa);
}

console.log(typeofa);

>>boolean

此时,a为boolean  类型。

 

Undefined:在声明一个变量的时候,使用时才确定变量的类型,如果一个变量只是声明,而未使用或初始化,将为undefined。

var c;
console.log(c);

 

>>undefined

 

若是未声明,直接使用,将出现异常

console.log(c);

 

>>ReferenceError:c is not defined

 

Object:可以包含多个属性的集合

var a =new  Boolean(false);
此时a 的类型为object。要正常使用的话,需要使用a.valueOf(Boolean)

var a =””;

此时a的类型为string,是基本类型,需要知道其长度的时候,调用a.lengthjs会自动把a转换成为String对象。基本类型中,””,undefined,0,可以自动转为false

这就是js会根据上下文来自动的装箱和拆箱。有时候也会产生意想不到的后果,例如

console.log( {a:1}+{});

 

>> [object Object][object Object]

 

console.log(typeof({a:1}+{}) );

>>string

 

Js并没有如期的抛出异常,而是把两个对象转成字符串,然后相加.这种转换规则在使用对象的时候需要异常注意。所有非空对象均会被默认转成true

 

 

 

a ="123";
a[
1] ="0";
console.log(a);

>>123

疑问1:如何修改字符串

 

 

 

 

你可能感兴趣的:(js)