首页 > 代码库 > JavaScript 概述

JavaScript 概述

1 JavaScript 

1.1 JavaScript 是一种脚本语言
  脚本语言不单独使用,必须嵌入到其它语言中组合使用
1.2 JavaScript 由浏览器解析运行。解析一条。运行一条
1.3 JavaScript 能够控制前端的页面的逻辑操作
比如 能够控制css样式
    能够对表单项进行校验
能够对HTML元素进行动态控制
1.4 JavaScript 的特点
                    交互性
                    安全性
                    跨平台性

2. JavaScript 的组成

2.1 ECMAScript    描写叙述了JavaScript 的语法 和基本对象 
2.2 DOM  文档对象  : 处理网页内容的方法和接口
2.3 BOM  浏览器对象类型  与浏览器交互的方法和接口

3. JavaScript 和 java 的关系

两者没有一点关系 ,仅仅是语法形式上相似


JavaScrip 与java 的差别


3.1 JavaScrip 是一种脚本语言。java 是一种编程语言


3.2  JavaScrip 是一种弱类型语言 , java 是一种强类型语言


3.3 JavaScrip 是由浏览器运行,java 是由JVM运行


3.4 JavaScrip 是基于对象 。 java 是面向对象

 

4.JavaScrip与HTML的结合 方式

   4.1 内部使用(属性结合方式)
4.2 外部使用
   <script type="text/javascript" src="http://www.mamicode.com/文件路径名"></script>

5. JavaScrip 中的语法及用法

5.1 凝视 

单行凝视  //
多行凝视  /**/

       5.2 变量 

5.2.1 JavaScrip 中的变量格式    var  变量名 = 变量值  ;

5.2.2 变量类型    JavaScrip 中是大写和小写敏感的

5.2.2.1 原始数据类型   

string  字符串类型   ‘’  “” 都 表示 是字符串
boolean
number  数字类型  整数 小数 和NaN 
null    对象的占位符。表示引用类型的不用在
typeof 运算符对于null 值 会返回 Object 这实际上是JavaScript最初
的一个错误
typeof() 用来推断 变量值是什么  结果 是原始数据类型
undefined  声明的变量未赋值,系统会默认赋值undefined
undefined 是从null 中派生出来的    undefined == null   // true 

5.2.2.2 引用数据类型

JavaScript 中并无类。我们能够理解为对象
Object 全部对象的父类
instanceof 用来推断对象属于哪种类型

                                                var obj = new Object(‘aa‘);
	         					alert(obj);//aa
		
						var obj = new Boolean(10);
						alert(obj);//true
		
						var obj1 = new Boolean("22");
						alert(obj1);//true
		
						var obj2 = new Boolean(true);
						alert(obj2);//true
		
						var obj3 = new Boolean(false);
						alert(obj3);//false
		
						var obj4 = new Boolean(null);
						alert(obj4);//false
		
						var str=‘abc‘;
						alert(str instanceof String);
						//false
		
						var str1 = new String(‘abc‘);
						alert(str1 instanceof String);
						//true
		
						var str2 = new String(‘abc‘);
						alert(str2 instanceof Array);
						//false
		
						var str3 = new String(‘abc‘);
						alert(str3 instanceof Object);
						//true
						
						var num = undefined;
						alert(num);//undefined
						alert(typeof(num));//undrfined
						alert(typeof(num.toString()));//不运行



5.2.2.3  类型转换

                 5.2.2.3.1 转换成字符串


                                        var flag = true;
					alert(flag);//true
					alert(typeof(flag));//boolean
					alert(typeof(flag.toString()));//string	
					
					
					var num = 5;
					alert(num);//5
					alert(typeof(num));//number
					alert(typeof(num.toString()));//string


					var num = null;
					alert(num);//null
					alert(typeof(num));//Object
					alert(typeof(num.toString()));//不运行


5.2.2.3.2 转换成数字

                                        var str = ‘abc‘;
					alert(typeof(str));//string
					alert(parseInt(str));//Nan
					alert(typeof(str));//string
					
					var str = true;
					alert(typeof(str));//boolean
					alert(parseInt(str));//Nan
					alert(typeof(str));//boolean
					
					var str = null;
					alert(typeof(str));//Object
					alert(parseInt(str));//NaN
					alert(typeof(str));//Object
					
					
					var str = ‘454a55‘;
					alert(typeof(str));//string
					alert(parseInt(str));//454
					alert(typeof(str));//string



注意:
parseInt() 把其它类型转成整数,有小数直接忽略
parseFloat() 把其它类型转成小数
string 假设能够转换成数字。是多少就转成多少。
假设有非法字符。那么非法字符后面的东西所有忽略
假设第一个就是非法字符。那么就直接转换成NaN
boolean 直接转成NaN
                        null 转成NaN
                        undefiend 转换成NaN

5.2.2.3.3   强制类型转换

                        Boolean(value) - 把给定的值转换成 Boolean 型; 
                        Number(value) - 把给定的值转换成数字(能够是整数或浮点数)。 
                        String(value) - 把给定的值转换成字符串;

注意:
           Boolean 

           string    假设有字符串值,那么是true
             假设是空字符串。那么是false

           number  假设数字非0,那么是true
                     假设是0或者NaN,那么是false

           null false

           undefined   false

5.2.3  算术运算符

+符号
算术运算加
字符串连接转换符
number转换符(其它类型转number):
string转number :将值转成数字类型。假设值不是合法数字,就转为NaN
比如:var str = +"11";
var str=‘a‘;
boolean转number : true转为1 ,false转为0-号除了运算外,能够作为转换符
           null转number: 转为0
           undefined转number:转为 NaN

alert(typeof(str));//string
alert(str);//a
str = + ‘11‘;
alert(typeof(str));//number
alert(str);//11

   使用算术运算符时,都会向数字方向进行转换,假设不是数字类型,则不转换。



-符号
算术运算减
转换符
number转换符(其它类型转number)
           

5.2.4 赋值运算符

= 赋值
+= 原值先加后赋值(若原值不为可运算数字,自己主动转换为相应数字)
-= 原值先减后赋值(若原值不为可运算数字,自己主动转换为相应数字)


5.2.5 比較运算符

== 比較值
=== 比較值和类型


!= 比較值
!== 比較值或比較类型,有一个不同即为不同

5.2.6 逻辑运算符

&& 逻辑与
|| 逻辑或




使用以上逻辑运算符,终于都会用boolean类型运算,若不是boolean类型,则进行转换。


number转boolean:0或NaN 转换成false ,其它为true
string转boolean:””为false,其它为true
null转boolean:转为false
undefined转boolean:转为false
对象转boolean:转为true

5.2.7 条件运算符 

                var var = (表达式)?value1:value2

        5.3 流程控制语句

if  switch  for   while   

6 对象  

6.1 Number 对象 

创建方式:
var mun1 =10;  --伪对象             alert (typeof(num1));//number
var num2 = new Number(10);          alert(typeof(num2));//Object
var num3 = Number(10);              alert(typeof(num3));//number
属性
MAX_VALUE;  alert(Number.MAX_VALUE);

MIN_VALUE;  alert(Number.MIN.VALUE);
NaN;  能够使用isNaN() 来推断一个值是否为数字
推断

6.2 Boolean 对象

创建方式:
var flag1 = true;
var flag2 = new Boolean(true);
var flag3 = Boolean(true);
   alert(flag1);//true  
       alert(flag2);//true
       alert(flag3);//true

6.3 String 对象

创建方式:
属性   length
charAt(5);
concat(str1,..);
indexOf();
replace(srt1,str2);
split("");

6.4 数组 

   var arr= [1,2,3];
var arr =new Array();
var arr = new Arry(4);  默认数组长度是4
var arr = new Array(1,2); 数组元素是1。2

属性  length
经常使用 方法
concat(,,,) 连接两个或很多其它的数组,并返回连接后的结果,对调用的数组没有不论什么的影响
join()
shift()删除并返回数组的第一个元素。假设数组已空,那么SHIFT()方法将不进行不论什么 操作,返回 undefien
pop()删除并返回 数组的最后一个元素。假设数组已为空,则pop()不改变数组,并返回  undefiend
push()向数组末尾加入一个或多个元素,并返回新数组的长度
unshift()向数组 开关加入一个或多个元素。并返回回新数组的长度
reverse() 把数组的元素进行物理翻转,会操作数组
sort()  排序会默认依据字符码表去排序,有非常大的缺陷,所以最好实现实例
       function sortNumber(a,b){ return a-b}

javascript  与 java 中的数组 的差别 
   数组的长度是可变的
数组的元素能够是随意类型的

6.5 Date 方法 


var date = new Date(); 会创建 date 对象,会把当前的系统值做为初始值
var date = new Date(毫秒值)  会创建date对象
方法 
				toLocaleString()  会把日期 转换成本地日期格式
				getDate() 返回 一个月中的某一天
				gerDay()
				getMath()
				getfullYear()
				getTime()
				settime()
				parse()
				
				
				var date = new Date();
				alert("date"+date);
				alert("date tolocalestring "+date.toLocaleString());
				alert("date gedate "+date.getDate());
				alert("date  getDay"+date.getDay());
				alert("date getMonth "+date.getMonth());
				alert("date getFullyear "+date.getFullYear());
				alert("date gettime "+date.getTime());
				
				
			计算某两个时间内相差的天数
					var time1 = Date.parse("2015/7/8");
					var time2 = Date.parse("2015/7/9");
					var long = time2-time1;
					alert(long/1000/60/60/24);



    6.6 Math 对象 

方法 
random();
round();
ceil()
floor()

    6.7 RegExp  对象

7 全局函数

7.1 eval 能够把字符串当做JavaScript代码来运行 
var str ="alert(‘你好‘)";
       eval(str);
7.2 isNaN()  推断是否是 NaN 假设參数是NaN 那么返回true 否则是false

7.3 URL
encodeURL() 编码 
decodeURL() 解码
encodeURIComponent()  URI编码 进行编码的时候适用于  传递參数
decodeURIComponent()  URI解码
var str = "http://www.itcast.cn/a.html?dfd=张三&dfd=123abc";

var tem = encodeURI(str);
alert("tem"+tem);
alert(decodeURI(tem));

7.4 URL  URI 
   7.4.1 URL 是统一资源定位符  URL是详细的URI
 URI 是统一的资源标识符
 
 URL 是绝对的,资源改变位置 URL 
 
 比如:http://www.baidu.com是URL,不是URI
比如:http://www.baidu.com/a.html 是URL也是URI
    

JavaScript 概述