首页 > 代码库 > javascript

javascript

Javascript概述
a.一种基于对象和事件驱动的脚本语言
b.作用: 给页面添加动态效果
c.历史: 原名叫做livescript.W3c组织开发的标准叫ECMAscipt.
d.特点:
  1). 弱势语言
  2). 由浏览器直接解析执行。(函数不能直接执行)
  3). 是一个解释性语言
      4). 交互性(它可以做的就是信息的动态交互)
      5). 安全性(不允许直接访问本地硬盘)
      6). 跨平台性(只要是可以解释Js的浏览器都可以执行,和平台无关
 
 javascript和java的一些区别:
      1). javascript是一个解释性语言,java是编译解释性语言
      2). javascript是一个弱势语言,Java是一个强势语言
      3). 在页面上引入的方式不同javascript代表用<script>引入,Java代码<%>
      4). JS是基于对象,Java是面向对象。
 
JavaScript语言组成
        EcMAScript  + BOM + DOM 
ECMAScript: 规定了一些语法,变量,for循环等等结构
BOM: Browser  object  Model 浏览器对象模型
DOM: Document  object  Model 文档对象模型
 
JavaScript与Html的结合方式
Javascript与HTML的结合方式有三种:
1.采用事件来调用,代码写在字符串中
<button onclick = "alert("大家好")">点击</button>
2.采用定义函数的方式: 用function来定义函数 
function fun(){ alert(‘你好‘)} ;
3.采用外部js文件.
利用<script type="text/javascript" src = "http://www.mamicode.com/a.js"></script>引入
 
JavaScript基本语法
定义变量:采用var关键字来定义.定义的变量的类型是由给定的值来决定的。
数据类型:    
                           a.   undefined,表示未定义类型。
 Number类型。代表了一切数字类型
 String类型。字符串类型
 Boolean类型。布尔类型
 Function类型。函数类型
 Null类型。   
   b.  object :对象类型.
         判断变量的类型 : 
1. typeof(变量) :  返回的是类型的tostring方法(类型的小写字符串)
2. instanceof :  判断的是变量是不是由类型new出来的
 
 三大结构
a.顺序结构
b.选择结构
c.循环结构 for,while,do...while
 
     运算符
1.一元运算符 +(正号) -  ++ -- 
2.二元运算符 +(加法) - * / %
3.三元运算符 ? :
4.等号  == 判断的是内容,=== 全等于 ,判断类型和内容
 
     类型的转换
1. Number转String : 3 + ""
2. Number转Boolean :在javascript中,非0为真,0为假。如果变量为null或者undefined,也为假.
3. String转Number:
        a. parseInt,parseFloat
        b. 乘以1即可
 
JavaScript 函数的定义
 函数的定义有三种方式: 
1. 采用关键字function定义: 
2. 采用匿名函数的方式: 用function关键字充当函数名字
3. (了解) new Function()的方式: 最后一个参数字符串是函数体,其他的参数都是形参
 
 函数的调用:
1.函数调用的时候参数可以传递多个,可以和函数定义的形参个数不符合
2.如果函数重名了,那么调用的时候一定是调用最后一个,与参数无关。
***** 推荐: 定义函数的不要重名。
 
         函数的劫持 : 即改变函数本身的作用。
            例:window.alert = function fun(e){
document.write(e);
}
alert("注意,函数已被劫持!!!");
 
JavaScript全局函数
                1.isNaN (not a Number):用来判断变量是否是数字类型的字符串
                    例: var v= "536";
            alert(isNaN(v));
 
2.parseInt,parseFloat
                    例:var v= "536";
alert(parseInt(v));
alert(parseFloat(v));
 
3.eval: 把字符串转换成数字
                    例: var v= "5*5";
            alert(eval(v));
 
4.escape(): 编码
                    例: var v= "中国";
            alert(escape(v));
 
5.unescape(): 解码
                    例:var v= "中国";
document.write(escape(v));
alert(unescape(v));
 
6.encodeURI(): 对网址(URL)进行编码
                    例: var v= "http://www.baidu.com?a=中国";
            alert(encodeURI(v));
 
7.decodeURI(): 对网址(URL)进行解码
                    例:var v= "http://www.baidu.com?a=中国";
                           var en = encodeURI(v);
                           alert(decodeURI(en));
 
JavaScript常用对象
            Array对象 数组对象,进行数组操作,数组的长度可以随时改变,里面可以存放任意不同种元素。
定义方式:
1.采用new的方式
                                例:var arr = new Array(); arr数组长度为0;
                        var arr1 = new Array(3); arr1数组长度为3;
                        var arr2 = new Array(5,6,7); arr2数组长度为3,里面元素为5,6,7
 
2.采用中括号[]来定义
                                例: var arr = [3];
                        alert(arr.length);
                        alert(arr[0]); 定义一个arr数组长度为1,0角标元素为3。
                
                        二维数组的定义方法,javascript不能直接定义二维数组。
                                例: var arr = ["中国","美国","日本"];
                        arr["中国"] = ["北京","上海","山东"];
 
特点: 
1.javascript中数组的大小可以随时改变
2.javascript中数组的下标可以是任意对象。
 
方法: 
1.join() : 把数组的所有元素放入一个字符串. 默认用逗号连接
                                例: var str = ["东营","烟台","青岛","济南"];
                        alert(str.join());
                        alert(str.join("---"));
                
2.push() : 向数组的末尾添加一个元素
                                例: var str = ["东营","烟台","青岛","济南"];
                        alert(str.push("china"));
                        alert(str.join());
 
3.reverse() :反转
                                例: var str = ["东营","烟台","青岛","济南"];
                        alert(str.reverse());
 
4.shift() : 删除并返回数组的第一个元素
                                例: var str = ["东营","烟台","青岛","济南"];
                        alert(str.shift());
                        alert(str.join());
 
                练习:标题的轮播
               function fun(){
//获得title的对象
var title = document.title;
//拆分成数组
var arr = title.split("");
//删除第一个元素
var first = arr.shift();
//把删除的元素放到最后
arr.push(first);
//合并元素为一个字符串
title = arr.join("");
//设定title
document.title = title;
//设定0.5秒运行一次
setTimeout("fun()",500);
}
 
fun();
 
String对象 ----- 字符串类型的引用类型
String对象: 
方式: substr: 截取字符串 两个参数第一个是下标,第二个是长度
                                                例: var str = "hello";
                                        alert(str.substr(1,3))
                
substring: 截取字符串 两个参数第一个是下标,第二个是下标
                                                例: var str = "hello";
                                        alert(str.substring(1,3));
 
toUppercase:转换成大写
                                                例: var str = "hello";
                                        alert(str.toUpperCase());           
        
toLowercase:转换成小写
                                                例:var str = "Hello";
                                       alert(str.toLowerCase());
 
indexOf:返回括号里面的角标
                                                例: var str = "Hello";
                                        alert(str.indexOf("e"));
 
charAt() :返回制定角标的字符
                                                例: var str = "Hello";
                                        alert(str.charAt(2));
 
replace():替换
                                                例: var str = "Hello";
                                        alert(str.replace("e","o"));
 
                        例:改变字体大小粗细
 
                                <!doctype html>
 <html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>javascript</title>
  <script type="text/javascript">
  <!--
function fun(){
var str = document.getElementById("china").innerHTML;
string = str.big();
document.getElementById("china").innerHTML = string;
}
 
function fun1(){
var str = document.getElementById("china").innerHTML;
string = str.bold();
document.getElementById("china").innerHTML = string;
}
  //-->
  </script>
 </head>
 <body>
  <p id = "china">china</p>
  <input type="button" value="http://www.mamicode.com/big" onclick="fun()">
  <input type="button" value="http://www.mamicode.com/bold" onclick="fun1()">
 </body>
</html>
 
Number对象 ---- 数字原始类型引用类型
Num对象:
1. random() : 获得随机数[0,1)
                                            例:alert(Math.random());
 
2. ceil() : 返回大于等于次数的最大整数
                                            例:alert(Math.ceil(Math.random()*3));
 
3. floor() : 返回小于等于次数的最大整数
                                             例:alert(Math.floor(Math.random()*3));
 
4. round(): 返回四舍五入后的整数
                                            例:alert(Math.round(Math.random()*3));
 
Boolean对象 ---- 布尔原始类型引用类型 
Math对象 ---- 执行数学任务
Date对象 用于处理日期和时间
Date对象: 代表一个时间
例:    var date = new Date();
 
alert(date); //返回带有时区的时间字符串
alert(date.toLocaleString()); //返回按照时区格式化之后的时间字符串
alert("年份:"+date.getYear());//返回第几年
alert("月份:"+date.getMonth()+1); //返回月份,符合中国人习惯要加1
alert("周"+date.getDay());//返回周几
alert("今天是一个月的"+date.getDate()+"号");//返回第几天
 
RegExp 对象正则表达式对象 
正则表达式
写法: 1. new的方式  
                                            例:     var reg = new RegExp("\\d");
var str = "536good";
alert(reg.test(str));//是否包含
alert(reg.exec(str));//返回一个数组,长度为一,数组里面装的是满足正则里面的第一个字符串。
 
           2. 采用/正则表达式/ (推荐) 
                                            例:     var reg = /.../;
                                        var str = "536";
                                        alert(reg.test(str));
                                        alert(reg.exec(str));
 
                                                        var reg = /(..)./;
                                        var str = "536";
                                        alert(reg.exec(str)[0]+"....."+reg.exec(str)[1]);//当正则表达式中存在子表达式时,数组长度不为1 ()代表子表达,子表达式的含义是对匹配的结果进行下一次匹配
 
 
 
 
 
 
 
 

javascript