JS
1. JavaScript和JScript区别?
JavaScript是比较流行的网页制作特效语言,netscape开打了JS
JScript是类似于JS语言,由微软开发
大多地方一致的,也有区别,在个别对象的属性和方法上是有不同的,如event时间的传播方式;在JScript中有一个all[]数组,它是所有设置了id值得元素的集合。而在JS中则没有这些。微软实现了FSO对象有了它,脚本可以调用许多的系统服务
JS所有浏览器都认识,JScript只有ie认识
第二章
JS并不是什么都可以做,如读取本地硬盘上的信息或者执行一个.exe文件
JS代码需要的一个叫“解释器”的模块,浏览器包含了它
JS可以外部引用
<script src="demo.js" type="text/JavaScript"></script>
第三章 JS基本语法
知识要点
。变量的概念与使用
。语句组成
。函数用法
。JS与其他语言的异同
【算法5个重要特征】
。输入:必须有零个或多个输入量
。输出:应有一个或多个输出量,输出量是算法计算的结果
。确定性:算法的描述必须无歧义,以保证算法执行结果是确定的
。有限性:算法必须在有限步骤内实现
。有效性:又称可行性。能够实现。算法中描述的操作都可以通过执行有限次已经实现的基本运算来实现
【变量】
变量声明:var 变量名;(不允许变量名为中文)
声明语句告诉浏览器,该变量可以用来存放或修改数据。未被赋值的变量也是有值得
变量赋值:变量名=值;
通常声明、赋值合二为一
var PI=3.1415926
var num=10;
var num=5 解释为声明了2个重名变量,多数编程语言会错误,ECMAScript把重复的声明和赋值当做对同一变量的重新赋值
相当于
var num=10;
num=5;
变量名开头只能使用字母、$、_而后可以接字母、数字、$、_
【基本类型】
未定义(Undedined)空(Null)布尔(Boolean)字符串(String)数值(Number)对象(Object)引用(Reference)列表(List)完成(Completion)后3中仅作为JS运行时中间结果的数据类型,而不能在代码中使用
1. Underdined
任何未被赋值的变量只声明过的变量,都有一个undefined
如果程序引用了未定义的变量,会显示undefined。但通常使用未定义的变量会造成程序错误
其中typeof运算符能察看一个变量所属的类型
除了声明时系统自动赋值为undefined外,开发者也可以自己把变量赋值为undefined
2.Null
空类型,该类型只有一个值——null
null是一个占位符,表示一个变量已经有值,但值为空。不同于undefined,null通常产生在程序运行当中
当变量不再被使用时,将变量赋值为null,以释放存储空间
3.Boolean
布尔类型,也就是真假类型,这个类型有两个标准值,true、false。布尔值用来表达一个逻辑表达式的结果,通常用于做判断处理,
如1<2这个表达式值就是true,反之则为false
4.String
var str="";//空字符串,表示str的值是一个空字符串,字符串内容为空
var str=null;//空值,表示变量str的值是空
var str="he said"how could this be"";错误 var str="he said'how could this be'";正确
5. Number
数值类型Number有三个特殊常量值,分别为NaN、+Infinity、-Infinity
。NaN全称not a number,非数值常量表示一个值并不是合法的数值形式,他通常用来验证一个变量的值是否是数值。虽然NaN本身是系统已经提供的常量,但通常不与它进行直接比较,而且这种比较也是无法得到正确的结果
var str='abcd'; alert(str==NaN);虽然通过与NaN比较是不行的,要想得到正确结果,应该使用isNaN函数进行判断
var str='abcd'; alert(isNaN(str)); 输出false
。+Infinity正无穷,ECMAScript规定大于或等于2的1024次方的数为无穷
alert(Math.pow(2,1024));
。-Infinity负无穷,与正无穷数量级是相同的
alert(-Math.pow(2,1024));
【引用类型】
引用类型最大的不同在于变量值的存储方式,对基本类型来说,变量中存储的是值本身
引用类型存储x的是值所在内存空间的地址,也就是指针
引用类型通常被认为是类,而它的值就是对象。对象是一种特殊的值,相当于集合。可以通过.(点运算符)访问集合内部的值。例如,obj.name
String在其他编程语言中都是引用类型,因为字符串长度不固定,但在ECMAScript规范中,它被定义为基本类型。但这只是对使用而言
a值赋值b时,把变量a所存储的值1赋值给变量b,所以以后把变量a的值改为2时,对变量b无影响
【类型转换】
网页中获取的文本数据,都是字符串类型的,必须先转换成数值类型
数据有两种方式转换成其他类型,①隐式转换 ②显式转换
(1)隐式转换
在数据运算过程中,系统自动把不同的基本数据类型转换成相同类型进行运算
(2)显示转换
系统无法总是猜中开发者的意图① parseInt() ②parseFloat()
①parseInt()
转换成整数的函数,只能对字符串类型进行转换,其他类型被转换的结构都将得到NaN。从字符串第一个字符开始依次判断,如发现不是数字字符,停止转换。如字符串第一个字符是除了减号外的任何非数字字符,将得到NaN
* * * 不要以为默认的parseInt的结果一定是10进制数,如果字符串第一个字符是0,会被转换成8进制,使用时一定要注意 * * *
②parseFloat()
转换成小数的函数
大多数据都是字符串类型所以没有用于转换成字符串类型的函数,用“+”连接一个字符串类型的值
转换成布尔类型