码迷,mamicode.com
首页 > 编程语言 > 详细

javaScript知识体系(上)- 变量、语句、函数、对象

时间:2016-10-22 07:19:01      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:汉字   ota   递增   1.5   创建   typeof   字符   逻辑运算   知识   

1. 变量

1.1 基本输出语句

    console.log("在控制台输出的内容");
    document.write("在文档中书写内容");
    window.alert("其实是window的方法"); 

1.2 代码注释
    //行注释
    /**
     * 这里可以对函数的功能进行说明
     */
    /*多行注释
     多行注释
     多行注释*/
1.3 标签位置

1.4 标签属性

1 <script src="demo.js" type="text/javascript"></script>
2 <script src="demo.js"></script>
3 <script src="demo.js" async="async"></script>
4 <script src="demo.js" defer="defer"></script>

1.5 变量命名

  •     由字母、数字、下划线、$ 组成且开头不能是数字
  •     不能是保留字,(class enum extends super const export import)
  •     区分大小写
  •     变量的名称要有实际意义
  •     规则中所说的字母包括ASCII和Unicode字母字符,如汉字,但不推荐使用
  •     变量的命名遵守驼峰命名法,首字母小写,第二个单词的首字母大写 例如:userName

1.6 变量的声明和使用

  •  JavaScript是弱类型的语言,即声明不同数据类型的变量使用同一个关键字var

1.7 数据类型

  • 声明的时候不用考虑类型,但是处理和计算的时候要考虑类型

1.7.1 基本数据类型

  • number数值型
  • string字符串型
  • boolean布尔型
  • undefined 未定义
  • null空

1.7.2 复杂数据类型

  • object对象
  • 使用typeof关键字可以查看变量的数据类型

1.7.3 数值类型

  • 字面量: var num = 数字;
  • 浮点数:
    • 计算浮点数时会丢失精度
    • 我们通常用整数的计算来表示浮点数的计算
    • 以两个浮点数是否相等作为条件判断的依据(判断范围还是可以的)
  •  NaN
    • NaN是数值类型
    • NaN不等于自身

1.7.4    字符串类型

  • 字面量: var str = “字符串”;
  • 字符串的长度: str.length;
  • 转义符: \n 换行 \’单引号 \”双引号 \\斜杠
  • 字符串的不可变性: 

1.7.5  布尔类型

  • 所有类型的值都可以转化成布尔值
  • 会转化成false的值有: 
  • 空字符串 数值零NaN undefined null

1.7.6    undefined类型     

  • 表示声明但未赋值的变量
  • 函数没有返回值默认返回undefined
  • 函数传递的实参个数少于形参个数时,未传递的参数值为undefined
  • 对象没有定义的属性默认为undefined

1.7.7    类型转换(转成字符串类型)     

  • 转换成字符串
  • 将任意类型转化为字符串 String(值)
  • 大部分类型都有toString方法 值.toString()
  • 小技巧 值+” ”

1.7.8    类型转换(转成数值类型)     

  • 转换成数值  将任意类型转化为数值 Number(值)
  • 将字符串转化为数值 parseInt(“字符串”)  parseFloat(“字符串”)
  • 小技巧 值-0

1.7.9    类型转换(转成布尔类型)转换布尔

  • 将任意类型转化为布尔值 Boolean(值)
  • 条件判断中自动转换 if(值)
  • 小技巧 +""值

 

1.8    操作符

1.8.1    一元运算符     

  • 递增++ 递减--
  • a++ 先参与运算 后自加
  • ++a 先自加 后参与运算

1.8.2    逻辑运算符     

  • &&和||都采取短路运算,即第一个能够决定结果就不再看第二个了
  • && 的要求比较宽松 要两个都是true才是true 所以看到第一个是false就没有必要继续完后看了
  • || 的要求比较严格,要两个都是false才是false,所以看到第一个是true就没有必要继续完后看了
  • &&和||不但可以操作布尔类型的值,对其他类型的值也可以进行操作,并返回可以决定表达式结果的那个值。

1.8.3    赋值运算符

1.8.4    运算符优先级

2. 语句

2.1 选择语句if

2.2    三元表达式 

    表达式1 ? 表达式2 : 表达式3

2.3    选择语句switch

2.4    循环语句for

2.5    break和continue

  •     break跳出当前循环,执行循环后的语句
  •     continue跳出当前循环,继续执行循环

2.6    循环语句while

  •     while语句 先判断后执行
  •     do while 语句 先执行后判断

3. 数组

3.1 数组声明

  •     var arr = new Array();//数组的构造函数 创建的是一个空数组
  •     var arr = new Array("4");//只有传入一个数值的时候 才表示数组元素的个数
  •     var arr = [5];//因为直接量直接表示的就是数组的内容 所以再传入一个数值表示的也是内容

3.2 数组赋值

  •     var arr = new Array();//数组的构造函数 创建的是一个空数组

3.3 数组使用

  •     var arr = new Array();
  •     arr.lengh; //获取数组元素的个数
  •     length属性是动态改变的 通过arr.length可以动态追加

3.3 冒泡排序     

<script>
        var arr17 = [56,45,23,78,67,34,96,39,44,23,45,37,85];
        var outer = 0;
        var inner = 0;
        for(var i = 0; i < arr17.length - 1; i++){
            var flag = true;
            for(var j = 0 ; j < arr17.length - 1 - i; j++){
                if(arr17[j] > arr17[j+1]){
                    var tempValue = arr17[j+1];
                    arr17[j+1] = arr17[j];
                    arr17[j] = tempValue;
                    flag = false;
                }
                inner++;
            }
            outer++;
            if(flag){
                break;
            }
        }
    </script>

4. 函数

4.1. 函数的声明

    function 函数名 () {//函数体 }
    1. 声明式函数
    2. 函数表达式

4.2. 函数的调用

        函数名();

   四种调用模式:

  • 普通函数调用
  • 方法调用模式
  • 构造函数都用模式
  • 上下文调用模式

4.3. 函数的参数

  •     有参数的函数的声明(声明中的参数只是一个占位符,没有实际的值,是形式参数,即形参)
  •     function 函数名 (参数1,参数2,参数3...) {//函数体 }
  •     有参数的函数的调用(调用时传入的参数才是有真正数值的参数,是实际参数,即实参)
  •     函数名(参数1,参数2,参数3...);

4.3. 函数的的返回值

  •     在函数中通过return关键字将要返回值返回
  •     return 要返回的值;

4.4. 函数的的高级概念

  •     @参数详解
    •  在JS中实参的个数和形参的个数可以不一致
  •     @返回值详解
    • 函数的返回值是什么,调用这个函数就相当于调用什么,如果没有返回值则为undefined
    • 函数在执行完return语句后便会退出函数,后面的代码不会执行
  •     @两种定义方式
    • 函数声明
  •     function fn1() {//函数体}
    •  函数表达式
    •  var fn2 = function() {//函数体}

4.5. 匿名函数

    @参数详解
    变量 = function () {//函数体}

4.6. @递归调用

    程序调用自身的编程技巧称为递归

4.7. @回调函数

  •     函数也是一种普通的数据类型
  •     因此函数也可以被当作参数传递
  •     被当作参数传递的函数叫做回调函数

4.8. 全局变量 局部变量

    函数内部声明的变量(局部变量)

5. 对象

  •     从宏观的角度讲,对象是对客观事物的抽象,事物的特征可以用属性表示,事物的行为可以用方法表示
  •     从微观的角度讲,对象就是一种数据类型,通过对象可以方便地对变量和函数进行管理

5.1. 键值对

  •     键值对就是一种对应关系,通过键能够方便地找到值
  •     键:值    key:value    k:v

5.2. 对象的声明

  •     通过构造函数声明(更加通用)var obj= new Object();
  •     通过字面量声明(更加简便)var obj= {};
  •     对象具有属性和方法
    • 属性 用来描述对象的特征 一般是名词 对应变量
    • 方法 用来描述对象的行为 一般是动词 对应函数

5.3. 属性

  •     属性的定义 对象.属性名 = 值;
  •     属性的调用 对象.属性名;

5.4. 方法

  •     方法的定义 对象.方法名 = function(){ //函数体 };
  •     方法的调用 对象.方法名();

5.5. 对象的其它概念

5.5.1 @对象字面量

  •     var o = {name : "zs", age : 18, sayHi : function() {console.log(this.name);} };

5.5.2 @对象标记法

  •     JavaScript Object Notation(JavaScript对象标记法)是仿照JS中对象字面量的格式去书写的一串用来记录对象数据的字符串,可以用于数据传输。将来学习AJAX会详细学习。

5.5.3 访问属性的两种方式

  •     点语法(简单)对象.属性名
  •     中括号(灵活)对象[“属性名”]

5.5.4 @遍历的两种方式

    通过for可以对集合进行有序的遍历
    for(var k in json) { 语句 }; k变量代表的是json中的各个属性(key)和 var i = 0中的i是一个意思 名字不同而已

javaScript知识体系(上)- 变量、语句、函数、对象

标签:汉字   ota   递增   1.5   创建   typeof   字符   逻辑运算   知识   

原文地址:http://www.cnblogs.com/hongqin/p/5986465.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!