JavaScript--基础

javascript 是一门编程语言。浏览器内置了javascript语言的解释器。所以可以在浏览器上按照javascript的语言规则编写代码。浏览器作出解释。

一、javascript存在形式

 1:直接编写在body页面的底部。

      html 按照顺序加载,先展示基本的页面,在展示动态的javascript比较合理。

 2:在headh中,通过引入文件

      

<script type="text/javascript" src="js文件"></script>

 

二、变量;

  变量类型:全局变量、局部变量

 带var进行声明的是局部变量

<script>
    //全局
    name = "seven";
    function func(){
        //局部
        var age=18;
        //全局
        gender="男"
    }
</script>

 

三、数据类型

 

1、数值

原始类型: 

  • 数字
  • 字符
  • 布尔值

对象:

  • 字典
  • 数组

null和undefined

 nulll 是javascript的关键字,表示特殊值,用来描述空值。

 undefined是一个特殊值,表示变量未定义。

 

 1:数字 number

   javascript中的number 不区分整数和浮点,所有的数值均用浮点表示。

   

创建数字:

    •  a = 123;
    •  a2 = new Number(123)   可以使用a2.xxxx 调用方法

转换方法

    •   parseInt()将字符转换为数值,不成功则为NaN
    •   parseFloat()将数值转换为浮点,不成功则为NaN
    •  a.tostring() 将数值转换为字符串
    • valueof() 查看具体的数值
    • toFixed() 四舍五入

判断类型

    •   typeof  a

 特殊值:

    •  NaN , 非数值,可以使用isNaN()判断
    •  Infinity,无穷大。
    •  isFinite 用来判断数值是否正常数值

  

 2、 字符串

  跑马灯;

 1 <script type="text/javascript">
 2     setInterval(function(){
 3         dl = document.setElementByid("i1");
 4         dl_text = dl.innerText;
 5         console.log(typeof dl_text);
 6         first_char =dl_text[0];
 7         sub_char=dl_text.selice(1,dl_text.length)
 8         new_str = sub_char + first+char;
 9         dl_innerText = new_str;
10     },500);
11 </script>
View Code

在javascript中,字符串是不可变的。可以访问字符串任意位置的文本,但是未提供可以修改已知字符串内容的方法。

 1 obj.length                           长度
 2  
 3 obj.trim()                           移除空白
 4 obj.trimLeft()
 5 obj.trimRight)
 6 obj.charAt(n)                        返回字符串中的第n个字符
 7 obj.concat(value, ...)               拼接
 8 obj.indexOf(substring,start)         子序列位置
 9 obj.lastIndexOf(substring,start)     子序列位置
10 obj.substring(from, to)              根据索引获取子序列
11 obj.slice(start, end)                切片
12 obj.toLowerCase()                    大写
13 obj.toUpperCase()                    小写
14 obj.split(delimiter, limit)          分割
15 obj.search(regexp)                   从头开始匹配,返回匹配成功的第一个位置(g无效)
16 obj.match(regexp)                    全局搜索,如果正则中有g表示找到全部,否则只找到第一个。
17 obj.replace(regexp, replacement)     替换,正则中有g则替换所有,否则只替换第一个匹配项,
18                                      $数字:匹配的第n个组内容;
19                                      $&:当前匹配的内容;
20                                      $`:位于匹配子串左侧的文本;
21                                      $':位于匹配子串右侧的文本
22                                      $$:直接量$符号
常用功能

 

3、布尔值

 

 ==  仅仅进行值的比较

 === 进行值和类型的比较

 

4、数组

  javascript中的数组类似python中的列表

  摘抄他人博客的常用方法

 1 javascript之数组操作
 2 1、数组的创建
 3 
 4 var arrayObj = new Array(); //创建一个数组
 5 
 6 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
 7 
 8 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值
 9 
10     要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。
11 
12 2、数组的元素的访问
13 
14 var testGetArrValue=arrayObj[1]; //获取数组的元素值
15 
16 arrayObj[1]= "这是新值"; //给数组元素赋予新的值
17 
18 3、数组元素的添加
19 
20 arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度
21 
22 arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度
23 
24 arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。
25 
26 4、数组元素的删除
27 
28 arrayObj.pop(); //移除最后一个元素并返回该元素值
29 
30 arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移
31 
32 arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素
33 
34 5、数组的截取和合并
35 
36 arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素
37 
38 arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组
39 
40 6、数组的拷贝
41 
42 arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向
43 
44 arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向
45 
46 7、数组元素的排序
47 
48 arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址
49 
50 arrayObj.sort(); //对数组元素排序,返回数组地址
51 
52 8、数组元素的字符串化
53 
54 arrayObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
55 
56 toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用
常用方法

 

5、序列化

  •   json.stringify(obj) 转换为字符串
  •   json.parse(str) 反序列化

 

6、转义

1 decodeURI( )            URl中未转义的字符.   函数可对 encodeURI() 函数编码过的 URI 进行解码。
2 decodeURIComponent( )   URI组件中的未转义字符
3 encodeURI( )            URI中的转义字符
4 encodeURIComponent( )   转义URI组件中的字符
5 escape( )               对字符串转义
6 unescape( )             给转义字符串解码
7 URIError                由URl的编码和解码方法抛出

 

7、eval

   javascript总的eval是python中 eval和exec的合集。既可以编译代码也会可获取返回值。

 

8、正则

 javascript提供2个重要函数

 test(string)  用于检测正则是否匹配

 exec(string)  用户获取正则表达式匹配的内容

 

四、语句和异常

1、条件语句

 if 语句

   if() {

   } else if(){

  }else {

}

 swith 语句

 

  swith(a){

    case "1":

         xxx;

         break;

    case  "2" :

        xxxx;

        break;

     default:

       xxxx;

}

2: 循环语句

 1 一:类似python的写法
 2 for(var index in names){
 3     console.log(index);
 4     console.log(names[index]);
 5 }
 6 
 7 二、类似其他语言的写法
 8 for(var i=0;i<names.length;i++){
 9     console.log(i);
10     console.log(names[i]);
11 }
12 三、while循环
13 while(条件){
14     // break;
15     // continue;
16 }

 

 3、异常处理

1 try {
2     xxxx
3 }
4 catch (e) {
5     xxxxx
6 }
7 finally {
8    此部分的代码总是会被执行
9 }

 

 五、基本函数

 1:基本函数

   javascript的函数分为3类, 普通函数、 匿名函数、自执行函数

 1 // 普通函数
 2     function func(arg){
 3         alter(arg)
 4     }
 5 
 6 // 匿名函数
 7     var func = function(arg){
 8         alter(arg)
 9     }
10 
11 // 自执行函数
12     (function(arg){
13         alter(arg)
14     })('在此处传递参数')

 

2、作用域

  所有的作用域均在创建函数且未执行的时候就已经存在

 

3、闭包

    在外部获取函数内部的变量。 类似 python的装饰器。通过return  获取内部函数变量。闭包 是基于作用域实现的。

 1 function f2(){
 2     var arg= [11,22];
 3     function f3(){
 4         return arg;
 5     }
 6     return f3;
 7 }
 8  
 9 ret = f2();
10 ret();

 

4、面向对象

   javascript中没有类的概念。但是有方法。 方法充当了构造函数。this  和self 一致。  创建对象的时候需要使用new

  

function Foo (name,age) {
    this.Name = name;
    this.Age = age;
    this.Func = function(arg){
        return this.Name + arg;
    }
}
  
var obj = new Foo('alex', 18);
var ret = obj.Func("sb");
console.log(ret);

 

  当有多个代码段使用同一个方法的时候,将会创建多个对象,会浪费内存。 这个时候需要使用原型。

  prototype

 

方式一:

  创建一个字典,在字典内添加内容

 Foo.prototype = {

   GetInfo: function(){ return this.name + this.age}, 

   Func: function(arg){ return this.name + this.age}

 

方式二、

 逐一的添加内容

 Foo.prototype.Func = function(){alter(this.name) }

 Foo.prototype.Func2 = function(){alter(this.name) }

  

posted @ 2016-08-13 16:32  咖啡茶  阅读(142)  评论(0)    收藏  举报