JavaScript基础总结(未完)

JavaScript基础总结:

基础语法:语法

   在ECMAScript中,定义 是用  var  ,例如: var name="zhangsan";  ,这样定义变量就会导致变量没有准确的数据类型,可以随意的转换,在ECMAScript中,

  每行的代码可以不用 ( ; ) 号来结束    例如

 var  name="zhangsan"

 var password="admin";

这两句都不会用问题,ECMA会把拆行代码的结尾看作该语句的结尾。

变量

在ECMAScript中,定义变量有两个地方需要注意:

(1)ECMAScript 在定义变量的时候可以不去初始化 :var test;   这种事合法的

 (2)在ECMAScript中变量声明不是必须的: var test1="hello";    test2=test1+"world";  alert(test2);    输出结果是 helloworld

解释:ECMAScript 的解释程序遇到未声明过的标识符时,用该变量名创建一个全局变量,并将其初始化为指定的值

数据类型

在ECMAScript中,数据类型分为原始数据类型和引用数据类型,其中,原始数据类型分为:Undefined、Null、Boolean、Number、String。String类型,在

ECMAScript中和别的语言不同,被当成了原始数据类型,有着固定的长度,存储在栈中。

类型转换

toString()的使用

在ECMAScript中定义的所有对象都有toString()方法,其中Boolean类型的toString()方法,输出的内容由变量值决定,Number类型的toString()方法,比较特殊,

分为默认模式和基模式,默认模式事例:var num1=10; alert(num1); var num2=10.1; alert(num2); 输出结果全是10, 基模式事例:var num1=10; alert(num1.toString(2)); number这种带参数的toString(),输出将采用参数的值,作为进制进行转换,也就是输出结果将是 num1的二进制

数组toString(), var  arr=new Array("zhangsan","lisi","wangwu") ; alert(arr.toString());  输出 zhangsan,lisi,wangwu

parseInt()使用

普通模式:使用parseInt()方法,首先判断变量的首字符是不是一个有效数字,如果不是,则返回NaN,如果是则看后面找到不是有效字符的前面,进行截取 回,如果遇到 10.6 这种情况,会返回10,对于整数来说,小数也不是有效字符。

基模式:var iNum1=paserInt("10",2);  传入第二个参数,会根据第二个参数传入的值,进行进制转换, 本事例将返回 一个2进制的数字

parseFloat()使用

parseFloat 没有进制转换的基模式,其余和parseInt()大体一致,但是 遇到 一位小数的时候,将返回一位小数,遇到二位小数将第二个小数之前部分进行截取。

强制类型转换

Boolean()  函数

 var b1=Boolean(" ");   空字符串则返回false

var b1=Boolean("hello"); 非空字符串 true

var b1=Boolean(50);  非0数字 返回true
var b1=Boolean(0);   0 返回false

var b1=Boolean(null); 返回false

var b1=Boolean(new Object()); 对象返回true

Number()函数

Number(true);   返回1

Number(false); 返回0

Number(null);  返回 0

Number(undefined);  返回NaN

Number("1.2.3");  返回NaN

Number(new Object()); 返回NaN

String()函数

String()函数,几乎所有的类型都可以转换成字符串,不过其中需要注意:var s1=new String(null);  返回null  ,var s1=null; alert(s1.toString()); 会报错

引用数据类型

var obj=new Object();  这种没有参数的对象代码可以简写成 var obj=new Object;

&&   ||   !  的含义

1. && 的工作方式:从第一个开始,遇到值为false的表达式(fasle、null、undefined、0、NaN、‘’)则返回此表达式,否则返回最后一个 表达式(注意,这边所说的表达式不一定为boolean类型)
2. || 的工作方式:从第一个开始,遇到值为true的表达式(与上面&&相反的其他情况)的返回此表达式,否则返回最后一个表达式
3. ! 的工作方式:对表达式的值取非(注意不是对表达式)。

Boolean引用类型难点

var booleanfalse=new Boolean(false);

alert(booleanfalse && true);

这个表达式返回的值将是true。如果单纯理解 && 工作方式,那么将是 如果booleanfalse 如果为false,则返回第一个表达式,如果为true,如果 为true,则返回第二个表达式,为什么这里运行后的结果变为了true?

首先:这里有一个问题, booleanfalse && true 进行比较,booleanfalse 是一个引用数据类型,是一个对象,在这里进行和一个Booleand 的原始数据类型进行比较,那么booleanfalse 会进行一个自动转换,由对象转换为原始数据类型 ,参照上面对象转换Boolean 类型的原则。 将返回true.所以在比较中booleanfalse 的实际值是true.

var booleanfalse=new Boolean(false);

var b1=booleanfalse && true;

var b2=true && booleanfalse;

alert("b1="+b1+"...b2="+b2);

这里又会产生一个疑惑点,为什么得到得结果确是 b1=true b2=false 在 var b2= true && booleanfalse; 在程序运行的时候 当看到 && 表达式 前面的时候,是一个true,所以 b2的结果是一个对象 也就是booleanfalse,当进行alert 输出的时候,程序做了一部处理, 对象.toString()处理, 在Boolean 引用数据类型中 ,对toString()进行了覆盖处理,返回字符串true和false,所以这里b2输出的结果将是false,但是b2本身却是个对象


发布了28 篇原创文章 · 获赞 2 · 访问量 5万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章