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=" 文件路径名"></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