javaScript基础知识

来源:互联网 发布:安庆网络问政平台2017 编辑:程序博客网 时间:2024/06/08 03:02
1.JavaScript组

1.1 ECMAScript:解释器、翻译、 核心   几乎没有兼容性问题

1.2 DOM:Document Object Model   document   操作HTML的能力 有一些操作不兼容

1.3 BOM:Browser Object Model  浏览器   window  没有兼容问题(完全不兼容)


2.变量类型

2.1 常见类型:  number string boolean undefiend object function

2.2 如何判断变量的类型: typeof运算符

2.3 注意:一个变量应该只存放一种类型的数据

2.4 例子:

var a = 12;
 
alert(typeof(a));

var b = 'a';

alert(typeof(b));

var c = "hello world";

alert(typeof(c));

var d = true;

alert(typeof(d));

var e = function(){}

alert(typeof(e));

var f = [1,2,3];

alert(typeof(f));

alert(typeof(g));

2.5 数据类型转换

2.5.1 显示类型转换(强制类型转换): parseInt() parseFloat()

var a = "12";

alert(parseInt(a));//12

var b = "12asdf";

alert(parseInt(b));//12

var c = "12asdf11";

alert(parseInt(c));//12

var d = "asdfg";

alert(parseInt(d));//NaN

NaN: not a number 非数字

var a=parseInt('abc');

var b=parseInt('def');

alert(a==b);//false

isNaN:判断一个变量是不是数字,true表示不是一个数字,false表示是一个数字。

var a = parseInt(12);

alert(isNaN(a));//false

var b = parseInt("abcd");

alert(isNaN(b));//true


var a = parseFloat(12.23);

alert(a);


2.5.2 隐式类型转换 == === -

var a = 12;

var b = '12';

alert(a==b);//true  先转换类型,然后比较

alert(a===b);//false 不转换类型,直接比较

alert(a+b);//1212  不转换类型,字符串链接

alert(a-b);//0  先转换类型,然后相减


3. 变量作用域和闭包

3.1 变量作用域(作用范围): 局部变量、全局变量

3.2 闭包:子函数可以使用父函数中的局部变量


4. 命名规范

4.1 命名规范及必要性:可读性--能看懂;规范性--符合规则

4.2 匈牙利命名法:类型前缀;首字母大写

4.3  例子

 类型前缀类型实例数组aArrayaItems布尔值bBooleanbIsComplete浮点数fFloatfPrice函数fnFunctionfnAdd整数iIntegeriNumber对象oObjectoDiv正则表达式reRegExpreEmailCheck字符串sStringsUserName变体变量vVariant vAnything

5.运算符

5.1 算数运算符:+ - * / %

5.2 赋值运算符:= += -= *= /+ %=

5.3 关系运算符:< > <= >= == === != !===

5.4 逻辑运算符:&& || !

5.5 运算符优先级:()

6.程序流程控制

6.1 判断:if、switch、?:

6.2 循环:while、 for

6.3 跳出:break、continue

6.4 什么是真,什么是假:真(true、非零数字、非空字符串、非空对象) 假(false、数字零、空字符串、空对象、undefiend)

7.JSON

7.1 什么是JSON

var json = {a: 1,b: 'a', c:"hello world"};

alert(json.a);//1

alert(json.b);//a

alert(json.c);//hello world

7.2 json和数组

var arr = [1,2,3];

alert("arr的长度是:"+arr.length);

for(var i=0; i<arr.length; i++){

    alert(arr[i]);

}

for( var i in arr){

   alert("arr的第"+i+"个元素是"+arr[i]);

}

var json = {a: 1,b: 2, c: 3};

alert("a是:"+json['a']);

for(var i in json){

    alert("json的第"+i+"个元素是"+json[i]);

}


7.3 json 和 for in

var json = {a: 1,b: 2, c: 3};

alert("a是:"+json['a']);

for(var i in json){

    alert("json的第"+i+"个元素是"+json[i]);

}


8. 函数

8.1 函数的定义

//方法定义方式一
var add = function(){

    alert(1);

}

//方法定义方式二
function addNumber(){

    alert(2);

}

add();//调用方法一

addNumber();//调用方法二

8.2 函数的返回值:函数的执行结果,一个函数应该只返回一种类型的值。

function add(a,b){

    return a+b;

}

var c = add(2,4);

alert(c);

8.3 函数传参

8.3.1 可变参:arguments 参数的个数可变,参数数组

//例子求和

function sum(){

    var a = 0;
    
    for(var i=0;i<arguments.length;i++){
    
        a+=arguments[i];
      
    }
    
    return a;

}

var c = sum(2,4,2,4,2,4,4,2,4,2,4,2,4,2,4,2,4,2,4,2);

alert(c);

//css函数

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>无标题文档</title>
        <script>
            function css(obj, name, value)
            {
                if(arguments.length==2)    //获取
                {
                    return obj.style[name];
                }
                else
                {
                    obj.style[name]=value;
                }
            }
            
            window.onload=function ()
            {
                var oDiv=document.getElementById('div1');
                
                alert(css(oDiv, 'width'));
                
                //css(oDiv, 'background', 'green');
            };
        </script>
    </head>
    
    <body>
        <div id="div1" style="width:200px; height:200px; background:red;"></div>
    </body>
</html>


8.3.2 获取非行间样式(不能用来设置)

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>无标题文档</title>
        <style>
            #div1 {width:200px; height:200px; background:red;}
        </style>
        <script>
            function getStyle(obj, name){
                if(obj.currentStyle){
                    return obj.currentStyle[name];
                }
                else{
                    return getComputedStyle(obj, false)[name];
                }
            }
            
            window.onload=function (){
                var oDiv=document.getElementById('div1');    
                alert(getStyle(oDiv, 'width'));
            };
        </script>
    </head>
    
    <body>
        <div id="div1"></div>
    </body>
</html>

9. 数组

9.1 数组的定义

var arr = [1,2,3]
    
alert(arr.length);
    
var arr1 = new Array(1,2,3);
    
alert(arr1.length);

9.2 数组的属性 length

既可以获取,又可以设置。设置可以用来清空数组。

var arr = [1,2,3]
    
alert(arr);
    
arr.length = 0;
    
alert(arr);

9.3 数组的使用原则:数组中应该只存一种类型的变量

9.4 添加元素:push(元素) 从尾部添加;unshift(元素) 从头部添加。

var arr = [1,2,3]
    
arr.unshift(0);
    
alert(arr);
    
arr.push(4);
    
alert(arr);


9.5 删除元素:pop() 从尾部删除; shift() 从头部删除。

var arr = [1,2,3]
    
arr.shift();
    
alert(arr);
    
arr.pop();
    
9.6 排序:sort([比较函数]),排序一个数组

//排序一个字符串数组
var arr = ["asd","bsdfga","ags","bedf"];
    
arr.sort();

alert(arr);
    
//排序一个数字数组
var arr = [12,123,234,21,452,2];
    
arr.sort(function(n1,n2){
    return n1-n2;
});

alert(arr);

9.7 转换类

concat(数组):连接两个数组

var a = [1,2,3];

var b = [4,5,6];

var c = a.concat(b);

alert(c);

join(分隔符):分割两个数组。用分隔符组合数组元素,生成字符串。

var a = [1,2,3,4,5,6];

var b = a.join("--");

alert(b);

split():切割字符串

var a = "1--2--3--4--5--6";

var b = a.split("--");

alert(b.length);

for(var i=0; i<b.length;i++){
    alert(b[i]);
}

9.8 splic 插入删除替换元素

var arr=[1,2,3,4,5,6];

//删除:splice(起点, 长度)
arr.splice(2, 3);

alert(arr);//1,2,6

//插入:splice(起点, 长度, 元素...);

arr.splice(2, 0, 'a', 'b', 'c');

alert(arr);//1,2,a,b,c,3,4,5,6

//替换splic(起点, 长度, 元素...)

arr.splice(2, 2, 'a', 'b');

alert(arr);//1,2,a,b,5,6

0 0
原创粉丝点击