JS 基础知识 复习 归纳总结

变量

//    全局变量
    var sum; //变量声明
    sum = 10; //变量赋值
    document.title='1111'
    function fn(){
        //局部变量
        var sum=0;
    }
    console.log(sum) /*undefined*/

变量和函数声明的提升

    //变量声明提升
    /*声明变量
    变量赋值*/
    function test() {
        var a = "1";
        var f = function() {};
        var b = "2";
        var c = "3";
    }
    //上述代码等价于
    function test() {
        var a, f, b, c;
        a = "1";
        f = function() {};
        b = "2";
        c = "3";
    }

函数执行环境和作用域

代码执行:先生成一个执行环境,再执行

全局作用域(全局变量):
 1,最外层函数和在最外层函数外面定义的变量拥有全局作用域,如下的例子:sum=10, test, a=1
 函数本身也是一个特殊的变量,其名字就是函数名字
 2,未定义直接赋值的变量自动声明为拥有全局作用域 -- 比如 all1 all2
 3,所有window对象的属性拥有全局作用域,例如:window对象的内置属性都拥有全局作用域,例如window.name、window.location、window.top等
 我们也可以通过如下方式定义一个全局变量:window.name=11

执行环境类似一个表格:第一行放置全局变量,第二行放置局部变量
变量搜索机制:先搜索局部变量,如果没找到,搜索全部变量
  第一行:sum, test, a
  第二行:a, foo

/*看看函数的执行*/
    /*a:由于变量声明提升,这里a变量是存在的,但是是undefined*/
    var sum =0;
    var a = 10
    all1 = 1000;
    function test() {
        //这个时候由于变量声明提升,a变量已经声明,并且值是undefined
        console.log(a);
        all2 = 200;
        //foo是一个函数,解析的时候会提升,所以能够访问到
        console.log(foo());
        /*如果省略下面这句 输出结果是什么*/
        //var a =1;
        function foo() {
            return 2;
        }
    }
    test();

变量声明提升笔试题

var v = "hello";
    function test (){
        console.log(v);
        var v = "world";
    }
    //    这段代码运行的结果是什么呢?
    //    答案是:undefined
    //    这段代码说明了两个问题,
    //    第一,function作用域里的变量v遮盖了上层作用域变量v。
    //    第二,在function作用域内,变量v的声明被提升了。所以最初的代码相当于:
//
//    var v = "hello";
//    function test (){
//        var v; //声明一个变量 声明提升,但是不会被赋值
//        console.log(v);
//        v = "world";
//    }

  


 

运算符  

算术运算符 +(加) ——(减) *(乘) /(除) %(取余数)
复合赋值运算符 -= += *= /= %=
自增自减运算符 -- ++
比较运算符 > < >= <= ==(比较的时候做类型转换) ===(全等于:值 数据类型都一样才算相等) !=
逻辑运算符 && 与 |或 !非
三元运算符
短路运算符

     ==   ===

 //自动类型转换
    if(1=='1'){
        alert('==一样')  //一样
    }

//比较的时候不会类型转换
//    if(1==='1'){
//        alert('===一样')  //不相等,不会执行
//    }

  


表达式

逗号表达式

var x= 0,y= 0,z=0;
    var result = (x=8*2,x*4) /*整个表达式的值为64,x的值为16*/
    console.log(result)
    console.log(x)


    x=(z=5,5*2) /*整个表达式为赋值表达式,它的值为10,z的值为5*/
    console.log(x)
    console.log(z)

    x=z=5,5*2 /*整个表达式为逗号表达式,它的值为10,x和z的值都为5*/
    console.log(x)
    console.log(z)

短路表达式


数据和数据类型

五大数据类型

//数值型
var num1 = 1;
//字符串型
var num2 ='2333fgfgfggggggggggggggggggggg';
//布尔型
var num3 =false;
//对象型
var num4 = document.getElementById('mydiv');
//未定义
 var num5;

数据类型检测的重要性

    //创业型公司   两个员工 : 小王:4000元  小李 : 5000元 一个月
    //字符串
    var xiaowang='7000';
    //字符串
    var xiaoli='10000';

    100007000
    //9000
    //数据类型转换
    alert(parseInt(xiaowang)+parseInt(xiaoli));
    //数据类型转换..
    //parseInt
    //检测数据类型
    alert(typeof(xiaowang))

dom对象

函数工具

属性工具

    document.title = '基础信息'             //设置文档标题等价于HTML的<title>标签
    document.bgColor = 'red'          //设置页面背景色
    document.fgColor  = 'green'          //设置前景色(文本颜色)
    document.linkColor = 'blue'         //未点击过的链接颜色
    document.alinkColor = 'red'        //激活链接(焦点在此链接上)的颜色
    document.vlinkColor = 'orange'        //已点击过的链接颜色

内置对象复习

字符串容器中常用函数

获取字符串长度Length属性
连接字符串:concat
获取索引值:indexOf()
根据索引值获取单个字符:charAt()

获取部分字符串:substr(fromIndex,length)

获取部分字符串:substring(startIndex,endIndex)

获取部分字符串:slice(startIndex,endIndex)

 按给定字符串分割,返回分割后的多个字符串组成的字符串数组:split()分割

 使用您选择的分隔符将一个数组合并为一个字符串:John()合并

字符串大小写转换:toLowerCase()--javascript;toUpperCase()--JAVASCRIPT

数组容器

 

日期容器中的函数

Math

 

posted @ 2017-04-09 14:39  李大白程序员  阅读(399)  评论(0编辑  收藏  举报