JavaScript基础

第一讲

JavaScript引入

内部引入

<script>
    var SIPC = new Array();
    var person = {
        name: 'Jorten',
        age: 21
    };
    person.sex = 'man';
    SIPC.push(person);
</script>

外部引入

<script src="./bundles.js"></script>


// bundles.js

function test() {
    alert("hi");
}
test();

JavaScript注释

//  这是一行注释

/*  这是
    一块
    注释
*/

行级注释

块级注释

变量声明

  • 局部变量
  • 全局变量

数据类型

  • Undefined
  • Null
  • Boolean
  • Number
  • String
  • Object

typeof

声明一个对象的类型

var num = 1;
console.log(typeof num);

// number

var obj = {};
console.log(typeof obj);

// object

console.log(typeof sipc);

// undefined

Undefined

未声明的变量

未初始化的变量

var message;

// var age;
// age 未被声明

alert(message);   // "undefined"
alert(age);       //  报错

typeof未声明的变量不会报错

//  var  age;

console.log(typeof age);

//   undefined

Null

表示一个空对象的指针

因此typeof null 返回 object

console.log(null == undefined)  //true

console.log(null === undefined);  //false

null和undefined不完全相同

Boolean

  • true
  • false

其余类型的值可以转为Boolean值

数据类型 转为true的值 转为false的值
Boolean true false
String 非空字符串 ""
Number 非0数字 0和NaN
Object 任何对象 null
Undefined undefined

Number

  1. 十进制 16
  2. 八进制 020
  3. 十六进制 0x10
  4. 浮点数
  5. 科学计数法
  6. 无穷大
  7. isFinite()

NaN

任何涉及NaN的计算都会返回NaN

NaN不等于NaN

在JavaScript中唯一不等于自身的数

isNaN()

其他类型的转化

数值转换

  1. Number()
  2. parseInt(num, [进制])
  3. parseFloat(num)

String

  • 字符串的表示
  • 字符串的拼接
  • 字符串的转换

Object

Object声明

var a = new Object();

var a = {};

具体属性我们会在以后的课程讲解

操作符

  1. 一元操作符
  2. 位操作符
  3. 布尔操作符
  4. 乘法 除法 求模
  5. 加法 减法 
  6. 关系操作符
  7. 相等操作符
  8. 条件操作符
  9. 赋值操作符
  10. 逗号操作符

相等操作符

== 和 === 的区别

== 会先转换类型看是否相等

=== 如果类型不等则不等

同理 还有!= 和 !==

语句

  • if
  • switch
  • do-while
  • while
  • for
  • for-in
  • with(不推荐)

函数

函数的声明

函数的参数

function createObj() {
    console.log(arguments[0]);
}

createObj(1, 2);
function temp() {
    console.log('这是一个函数');
}

函数无重载

function handles() {
   console.log('first');
}

function handles() {
   console.log('second');
}

handles();


//second

基本类型和引用类型

基本类型无属性

传递参数

检测类型instanceof

作用域

  • 向上查找作用域链
  • 函数作用域
  • 无块级作用域