js基础3
js基础3
JavaScript基础
JavaScript不难,但是对于初学者来讲比较的怪异。
是一种客户端语言,在浏览器执行的。是一种脚本语言,直接就能解释执行的叫脚本代码。像dos命令还有SQL也是。
为什么要引用JavaScript语言呢?HTML没有计算能力。为什么不用C#中的代码来完成呢?C#得通过网络,一通过网络就慢了。
JS是非常灵活的动态语言,不像C#等静态语言那样严谨。数据类型不固定。建议不去使用VS2010里面关于JS的智能提示。
JavaScript基本组成
基本语法ECMAScript
Dom(文档对象模型)
Bom(浏览器对象,有兼容性的问题)
语法概述
大小写敏感
弱类型语言(声明变量都用var)JS当中的字符串推荐使用单引号,当然用双引号也行。当C#和JS遇见的时候就不会尴尬了。每句话后面要跟分号。
C#和JS中的注释一样,但是推荐使用//单行注释。(因为在使用正则表达式的时候会有问题)。
一、新建HTML页
二、选择语言JS代码
三、alert 内置方法
四、声明变量,及同时声明多个变量
五、显示当前时间
<script 两下tab键
整个一行<script type=”text/javascript”>就出来了。
六、标签<script>可以放的位置
七、不能再插入一个</script>
下面我们看看如果我把JS文件写到另外一个页面上时,怎么加载。
八、Jscript
在Jscript中专门写JS的代码。然后进行添加。
九、外部引用
还可以连接入外部网站的JS,这样功能就非常的强大了。一般当连入大量的JS的时候都是把这段代码写在最后,让用户感觉不到慢。
下面我们看看JS当中的事件:
十、按钮的单击事件(更新图片)
十一、单击一个超链接显示当前时间
一个特殊的地方:单击一个超链接显示当前时间。
<a href=“javascript:js代码”>热点文字</a>
只有超链接的href中的JavaScript中才需要加“javascript:”,因为它不是事件,而是把”javascript:”看成像“http:”、“ftp:”、“thunder://”、“ed2k://”、“mailto:”一样的网络协议,交由js解析引擎处理。只有href中这是,这是一个特例。
十二、失去焦点事件
变量命名规则:以字母、下划线或$开头,中间可以包括字母、数字、下划线或$。(变量命名中多了一个$)
jS中的数据类型
Boolean(布尔)、Number(数字)、String(字符串)、Undefined(未定义)、Null(空对象)、Object(对象类型),undefined与其他值计算得到的结果不是我们想要的,但与数据库中的null稍有区别,比如与数字计算或与字符串计算结果。
除了Object是引用类型以外,其他都是基本数据类型
Undefined类型、Null类型都是只有一个值的数据类型,分别为undefined与null.
十三、用typeof看数据类型
接下来我们看下JS中的null和undefined的区别。
十四、undefined
null表示的是一个已知的值,是一个空对象,与undefined不一样,undefined表示的是一个未定义的值。
十五、null
十六、==和===
怎么样转成布尔类型呢?
alert(Boolean(x));
下面我们再来判断变量是否可用?
十七、判断变量是否可用
&& ||表示短路,& | 表示 每个条件都要判断一下,不存在短路问题。
也可以直接把判断的方法写在括号里面。
十八、判断变量是否可用也可以写成这样
接下来我们看下JS中变量的作用域
十九、JS中变量的作用域
二十、声明变量的时候一般建议都要使用var关键字
下面我们看看JS中的转译符问题
跟C#中一样的,
JavaScript中字符串同样需要转义符 ’ \ ’,与C#一样。
想在页面输出:c:\windows\microsoft\vs.txt,这句话,需要这样写:alert(‘c:\\windows\\microsoft\\vs.txt’);不能用@,@只在C#中有效。
常见转义符:\t、\n、\’、\”、\\
在用正则表达式的时候也会遇到转义符问题。
注:switch判断时,是“全等于”,===
接下来我们看下类型转换:
第一种是字符串转到整数
二十一、字符串到整数
二十二、转换小数
把任意的类型转换成对应的类型。
二十三、任意类型转换成对应的类型
二十四、调eval
下面重点讲解通过浏览器来调试JS代码。
二十五、VS中调试第一步
二十六、VS中调试第二步
用VS调试,需要保证默认的浏览器是IE6以上版本。
二十七、通过IE浏览器进行调试
目前火狐浏览器是JS调试最好的工具。
二十八、Firebug
如果没有的话,可以上网下载一个,具体步骤如下:
二十九、Firebug的安装
下面我们看看怎么在火狐中进行调试呢?
三十、在火狐中的调试过程
下面讲下函数声明:
三十一、js中方法的写法
Js中没有方法的重载,所以下面一段代码的结果是这样子的。
三十二、js中没有方法的重载
如果我想实现多个数求和的功能,又没有方法的重载怎么办呢?
arguments里面是我们传的参数,既然arguments里面都是我们
传的参数,所以我们写了个循环。
三十三、arguments
接下来我们看下匿名函数:
没有方法名就是匿名函数,没有方法名,我们怎么调用呢?
三十四、匿名函数的第一种写法
三十五、匿名函数的第二种写法
接下来我们看下闭包:
三十六、闭包
什么是“闭包”?
在一个函数内部又定义了一个函数,内部函数函数能访问外部函数作用域范围内的变量,这时这个内部函数就叫做闭包。无论这个内部函数在哪里被调用都能访问的到外部函数作用域中的那些变量。
“闭包”是怎么实现的?
通过作用域链
“闭包”能做什么?
Js中的面向对象都是用“闭包”来模拟的。
三十七、用函数来模拟
接下来我们看看JS面向对象:
现在JS中的面向对象实际上还是用函数来模拟,为了便于大家的理解,我们还是用类,和对象来阐述。
三十八、面向对象的object写法
三十九、自己写的面向对象
四十、通过构造函数写属性
接下来我们看看JS中的字符串:
四十一、字符串的长度和根据索引找到指定的字符
四十二、indexof
参考:
JavaScript基础 - 小事好 - 博客园
https://www.cnblogs.com/zysbk/archive/2012/09/24/2700385.html