JavaScript基础精华01,变量,语法,数据类型

JavaScript是一种脚本语言。

脚本,一条条的文字命令。执行时由系统的一个解释器,将其一条条的翻译成机器可识别的指令,然后执行

JavaScript基本组成

1.基本语法(浏览器基本都支持,有统一标准)

2.Dom(文档对象模型)(基本都支持,但可能会有差别,有统一标准)

3.Bom(浏览器对象,一般功能浏览器支持,但没有统一的标准)控制浏览器可见区域以外的部分(打开新窗口、关闭浏览器窗口、获取分辨率screen、XmlHttpRequest等。ajax)

js注意几点

1大小写敏感

2弱类型语言

3声明变量用var

4字符串用单引号

5每句话后面分号

JavaScript入门1

编写第一个JavaScript程序:显示当前时间。

<script type="text/javascript">

var nowData = new Date();

alert(nowData.toLocaleDateString());//日期

alert(nowData.toLocaleTimeString());//时间

</script>

<script language=“...” >W3C已经不推荐使用。

网页中的JavaScript代码应该放到<script></script>标签中,<script>标签可以放到<head>、<body>等任意位置,并且一个页面可以有不止一对<script></script>标签。

alert()函数是弹出一个消息窗口。new Date()创建一个Date对象,默认时间是当前时间。

放到<head>中的<script>在body加载之前就已经运行了。写在body中的<script>是随着页面的加载而一个个执行的。

JavaScript入门2

导入外部JavaScript文件:

除了可以在页面中声明JavaScript以外,还可以将JavaScript写到单独的js文件中,然后在页面中引入:

<script src=“test.js” type=“text/javascript”></script>。

声明到单独的js文件的好处是多页面也可以共享、减小网络流量。js文件的CDN(*),内容分发网络

可以将导入外部文件的<script>标签写在文档最后,提高用户体验。

注意:在<script></script>标签中不要出现’</script>’元素。

JavaScript的事件

JavaScript中也有“事件”的概念。

单击一个按钮显示当前时间。就触发了一个事件

<input type=“button” onclick=“ js代码" />

一个特殊的地方:单击一个超链接显示当前时间。

<a href=“javascript:js代码”>热点文字</a>

只有超链接的href中的JavaScript中才需要加“javascript:”,因为它不是事件,而是把”javascript:”看成像“http:”、“ftp:”、“thunder://”、“ed2k://”、“mailto:”一样的网络协议,交由js解析引擎处理。只有href中这是这是一个特例。

超链接为“死链”时,使用#与javascript:void(0);的区别。Void0没有用的值,不会去任何地方,就没有意义了

变量声明:

声明变量的时候无法:int i=0;只能通过var i=0;声明变量,和C#中的var不一样,不是C#中那样的类型推断。

var test=“hello”;

var test1=“hello”,age=20;

var i=100; i=“hello”;

var i,n,x;

var i=10,n=100,s=‘aaa’,m;

变量命名规则:以字母、下划线或$开头,中间可以包括字母、数字、下划线或$。(变量命名中多了一个$)

JavaScript中即可以使用双引号声明字符串,也可以使用单引号声明字符串。主要是为了方便和html集成,避免转义符的麻烦。

变量使用前可以不用var声明,这样的变量会变认为是“全局变量”(不推荐)

JavaScript是动态类型,因此var i=0;i=“abc”;是合法的。

JavaScript数据类型

数值、字符串、布尔、undefined、对象、函数。查看变量的类型用typeof(变量)

数值:(值类型)

var n1=3.1415926;//数值类型

n1.toFixed(3);//四舍五入保留3位小数。

字符串:(值类型,字符串不可变特性)

var s1=‘hello’;//字符串类型

布尔:(值类型)

var b1=true;//布尔类型

undefined:(值类型)

var u1;//undefined

对象(object):(引用类型)

var tim=new Date();//对象类型(object)

var names=[‘zs’,’ls’,’ww’];//数组也是对象类型(object)

var obj=null;//object

函数:(引用类型)

function fun(){ } //typeof(fun);//输出结果为function,函数类型。Typeof还有一个作用那就是判断变量是否可用

JavaScript语法

JavaScript中的null与undefined(参考资料)

undefined,表示一个未知状态

声明了但是没有初始化的该变量,变量的值是一个未知状态(undefined)。 (访问不存在的属性或对象window.xxx)

方法没有明确返回值时,返回值是一个undefined.

当对未声明的变量应用typeof运算符时,显示为undefined(*)

null表示尚未存在的对象,null是一个有特殊意义的值。可以为变量赋值为null,此时变量的值为“已知状态”(不是undefined),即null。(用来初始化变量,清除变量内容,释放内存)

undefined==null //结果为true,但含义不同。

undefined===null //false(*),先判断类型是否一致,然后判断值。

===严格等于、!==严格不等于

由于==会将值转换类型后再判断是否相等,有时可能会有意想不到的结果,所以推荐使用===。但注意,有些情况使用==能带来更好的效果。

JavaScript中字符串同样需要转义符 ’ \ ’,与C#一样。

想在页面输出:c:\windows\microsoft\vs.txt,这句话,需要这样写:alert(‘c:\\windows\\microsoft\\vs.txt’);不能用@,@只在C#中有效。

常见转义符:

\t、\n、\’、\”、\\

在用正则表达式的时候也会遇到转义符问题。(*)

if-else、for、while、do-while、switch、continue、break的用法参考c#语法。for循环稍有差异:for(var i=0;i<10;i++){ … }

注:switch判断时,是“全等于”,===

JavaScript变量的作用域

默认如果直接在script标签中定义变量,则属于“全局作用域范围”(全局执行环境),即属于window对象。

全局作用域范围的变量直到网页关闭或浏览器关闭时才释放资源

一个页面中的多个<script>标签中的变量可以互相访问。

JS有垃圾回收机制,会定时对可释放资源的变量回收。将变量设置为null则表示可以被回收了。

如果在某个函数内定义了变量则作用域范围属于该函数。注意声明变量时使用var与不使用var的区别。

注意:JS中没有块级作用域范围。

类型转换

parseInt(arg)//将指定的字符串,转换成整数

parseFloat(arg)//将指定的字符串,转换成浮点数

Number(arg)把给定的值(任意类型)转换成数字(可以是整数或浮点数);转换的是整个值,而不是部分值。如果该字符串不能完全转换为整型,则返回NaN。(Not a Number)

isNaN(arg)//判断arg是否为一个非数字(NaN),NaN与NaN也不相等。

String(arg)把给定的值(任意类型)转换成字符串;

Boolean(arg)把给定的值(任意类型)转换成 Boolean 型;