第一章 基础知识

405 阅读6分钟

零、JS引入

外部引入

<script type="text/javascript" src="js/index.js"></script>  //写到body内的最后面

一、注释


快捷键:ctrl+/ //单行注释

快捷键:ctrl+shift+/ /*多行注释*/

二、输出


下面是三种不同的输出方式:

var name = 'Petter';   //将字符串Petter赋值给 变量name

1.控制台输出
console.log('Hello,world01');    //输出字符串  "Hello,world"
console.log(name);               //输出变量  "Petter" 
console.log('Hello,' + name + '01!');  //输出变量+字符串 "Hello,Petter!"

2.页面输出 
document.write('hello,world02');     //能够在HTML页面里面输出内容

3.提示框输出 
alert('hello,world03');

1.控制台输出

image.png

2.页面输出

image.png

3.提示框输出

image.png
以上三条是作为前端工程师以后调试JS代码的利器。

三、变量


1.原始变量声明赋值用法(声明与赋值分开写)

var a;   //声明变量a,分配内存
a = 10;  //为变量a赋值
console.log(a);  //控制台输出为10

2.简化变量声明赋值用法(声明与赋值一起写)

var a = 10; 
console.log(a);

image.png

3.通过typeof来查看变量的数据类型

var a;
a = 10;               // number
a = true;             // boolean
a = 'Henrry Browne'   // string
a = function(){};     // function
a = {age:26};         // object

console.log(a);  
console.log(typeof a); //输出语句 

四、标识符命名


  1. 标识符首字母可以用 abc _ $ 来开头,用驼峰命名法的英文单词
  2. 不能用关键字与保留字命名变量
  3. 变量名对大小写敏感 a 和 A 不是一个物种

五、关键字与保留字


  • 关键字

JS正在使用的名称,用途包括:系统变量名、JS内置方法函数名、已知宿主环境提供的API

break do instanceof typeof if else
case var new finally return void
continue for switch while debugger function
this with try catch throw delete
default in implements package public interface
private static let protected yield
  • 保留字

将来javascript可能会用的名称。

abstract enum int short boolean export
byte extends long super native synchronized
class float throws const goto transient
volatile double import

六、全局变量与局部变量


var a = "local var";      //a 在函数外部创建的 为全局变量
function print(){        
    console.log(a);       // a 为全局变量,因为前面没加var 
}

------

function test(y) {        // 参数y为局部变量
    var x = "global var"  // x在函数内部创建 为局部变量
}

console.log(x);           //x为局部变量
console.log(y);           //y为局部变量

----------
// 块(block)
{
    var x1 = "hello,world";
}
console.log(x1); // hello,world 结论:js(ES5)没有块级作用域

var n1 = "123";  // 声明全局变量
console.log(n1); //123

(function () {
    var x2 = "Hi,boy";
    console.log("自调用函数执行");   //自调用函数执行
    console.log(n1); //123
})();
console.log(x2); x2为局部变量,这里无法访问 
  • 全局变量:函数外部定义的变量,其作用域(全局作用域)范围为整个文件系统。

  • 局部变量:函数内部定义的变量/函数参数,其作用域范围为函数内部。

  • 函数作用域:作用域就是函数变量起作用的区域 。

七、运算符与表达式


1. 基本运算符

  • +:加法运算符,如 a + b
  • -:减法运算符,如 a - b
  • *:乘法运算符,如 a * b
  • /:除法运算符,如 a / b
  • %:模运算(取余数),如 a % b
  • ++:自增运算符(自身+1)
  • --:自减运算符(自身-1)
var a = 'My name si:'; //字符串相加
var b = 'laoYe';
console.log(a + b); //控制台输出:My name si:laoYe
var a = 10;
var x = ++a; // x = 11, a = 11

var a = 10;
var x = a++; // x = 10, a = 11

console.log(x);
  • 不管++在前,还是++在后,变量自身都会+1
  • ++在前,先自增再赋值;++在后,先赋值在自增

2. 赋值运算符

var num = 10;
num = num + 10;    //可以被简写为 num += 10;
console.log(num);

赋值运算符是为JavaScript中的变量赋值,即将该运算符右方计算出的值赋予左侧的变量。

  • =:赋值运算符,如 x = 10; ,将 10 赋值给变量 x
  • +=:变量与值相加,如 x += y; 相当于 x = x + y
  • -=:变量与值相加,如 x -= y; 相当于 x = x - y
  • *=:变量与值相加,如 x *= y; 相当于 x = x * y
  • /=:变量与值相加,如 x /= y; 相当于 x = x / y
  • %=:变量与值相加,如 x %= y; 相当于 x = x % y

3. 关系运算符

关系运算符描述两个变量的关系,其返回值类型为布尔类型(boolean),即 truefalse

  • ==:判断两个变量是否相等,如 'Henrry Lee' == 'Henrry Lee',返回 true
  • >:判断等号左边的变量是否大于等号右边的变量,如 20 > 10,返回 true
  • <:判断等号左边的变量是否小于等号右边的变量,如 20 < 10 ,返回 false
  • >=:判断等号左边的变量是否大于等于等号右边的变量,如 20 >= 10,返回 true
  • <=:判断等号左边的变量是否小于等于等号右边的变量,如 20 <= 10,返回 false
  • ===:恒等于,要求不仅数据类型要一致,值也要一致,如 1 === '1',返回 false
  • !==:不恒等于,只要类型或值不一样,结果为true,如 1 !== '1',返回 true

4. 逻辑运算符

逻辑运算符是JavaScript用于判断几条语句成立情况的一种运算,该运算符的返回值类型为布尔类型。

  • 逻辑与:&& ,同时为真才为真,如 (1 > 2) && (2 > 3),返回 false
  • 逻辑或:|| ,同时为假才为假,如 (1 > 2) || (2 > 3),返回 true
  • 逻辑非:! ,取反,如 !(1 > 2),返回 true

5. 三元运算符

var isLogin = false;
isLogin ? console.log('已登录') : console.log('未登录');

-----
var a = 40, b = 30;
var max = a > b ? a : b;
console.log("max = " + max);

三元运算符:a ? b : c;

首先判断表达式a的值(true false),如果为true,则执行语句b 如果为false,执行语句c

八、基本数据类型


1. 数值类型(number)

“0”、正数、负数、浮点数(小数)

            var a = 0;   
            var b = 1;
            var c = -1;
            var d = 1.1;
            console.log(typeof a);  //控制台输出类型:number
            console.log(typeof b);  //控制台输出类型:number
            console.log(typeof c);  //控制台输出类型:number
            console.log(typeof d);  //控制台输出类型:number

2. 字符串类型(string)

放到 '' "" 单引号、双引号里面的就是字符串类型 "Hi" 'hi'

            var a = '0';
            var b = '1';
            var c = '-1';
            var d = '1.1';
            console.log(typeof a);  //控制台输出类型:string
            console.log(typeof b);  //控制台输出类型:string
            console.log(typeof c);  //控制台输出类型:string
            console.log(typeof d);  //控制台输出类型:string

注意:该类型特点是,引号内的值,你输入什么就显示什么。

3. 布尔类型(boolean)

true false

            var a = true;
            var b = false;
            console.log(typeof a); //控制台输出类型:boolean
            console.log(typeof b); //控制台输出类型:boolean

4. 对象类型(object)

数组是对象、空值null也是对象 {}, []

console.log(typeof []); // object
console.log(typeof {}); // object

5. 函数类型(function)

// 定义函数
function sum(a, b) {
    return a + b;
}
// 调用函数
var result = sum(10, 20);
console.log(result); // 30

函数类型是JavaScript中最复杂的一个数据类型,但它在JavaScript中扮演中相当重要的作用,它也同是面向对象编程中一个非常核心的内容。函数的设计非常大程度地决定了一个网站或应用的性能。从编程角度来讲,它直接影响到了代码的可复用性,代码量,可以维护性,可扩展性等因素。这个对于JavaScript的初学者来说也是最难掌握好的一个部分,就算一个已经工作了好几年的Web前端开发工程师,在对函数的组织和优化上都会下不少功夫。

6. 未定义(undefined)