📜  主干 js - Javascript (1)

📅  最后修改于: 2023-12-03 15:36:01.715000             🧑  作者: Mango

主干 js - Javascript

Javascript是一种基于对象和事件驱动的脚本语言,被广泛应用于前端网页开发、后端服务器开发、桌面应用程序开发等领域。Javascript的核心部分被称为主干js,它包括语言基础、内置对象、函数库等部分,是Javascript开发的基石。

语言基础

主干js的语言基础包括数据类型、变量、运算符、语句、函数等部分,这些基础是编写任何Javascript程序的必要基础。

数据类型

Javascript的数据类型包括基本类型和引用类型。基本类型包括数字、字符串、布尔值、null和undefined,引用类型包括对象、数组、函数等。

// 数字类型
var num1 = 1;
var num2 = 2.5;

// 字符串类型
var str1 = 'Hello';
var str2 = "world";

// 布尔类型
var flag = true;

// null和undefined类型
var n = null;
var u = undefined;

// 对象类型
var obj = {name: 'Tom', age: 18};

// 数组类型
var arr = [1, 2, 3];

// 函数类型
function func() {
    console.log('Hello world');
}
变量

Javascript的变量使用var关键字声明,变量的值可以被替换。变量作用域可以是全局的或函数内部的。

var a = 1;
var b = 2;
a = 3;
var c;
c = a + b;
console.log(c);

function foo() {
    var m = 1;
}
//console.log(m); // 这里会报错,因为m是函数内部的变量
运算符

Javascript的运算符包括算术运算符、比较运算符、逻辑运算符等。运算符的作用是对数据进行运算或比较。

var a = 1;
var b = 2;
var c = a + b; // 算术运算符,c=3
var d = (a > b); // 比较运算符,d=false
var e = !d; // 逻辑运算符,e=true
语句

Javascript的语句可以是表达式语句、条件语句、循环语句、函数调用语句等。语句的作用是按照一定的逻辑组织代码的执行流程。

// 表达式语句
var a = 1 + 2;

// 条件语句
if (a > 0) {
    console.log('a是正数');
} else {
    console.log('a是负数');
}

// 循环语句
for (var i = 0; i < 10; i++) {
    console.log(i);
}

// 函数调用语句
function foo() {
    console.log('Hello world');
}
foo();
函数

Javascript的函数是一段可重复调用的代码块,可以接收参数并返回值。函数的作用是组织重复使用的代码逻辑,增强代码的可读性和可维护性。

function add(a, b) {
    return a + b;
}
var c = add(1, 2); // 调用函数add,c=3
console.log(c);
内置对象

Javascript的内置对象包括函数对象、日期对象、正则表达式对象、全局对象等等。这些内置对象可以帮助程序员完成很多实用的功能。

函数对象

Javascript的函数作为一种对象,具有很多内置的方法和属性。这些方法和属性可以帮助程序员更方便地使用和管理函数。

function add(a, b) {
    return a + b;
}

console.log(add.length); // length属性,返回函数定义时的形参个数
console.log(add.toString()); // toString方法,返回函数源代码的字符串表示

var sub = new Function('a', 'b', 'return a-b');
console.log(sub(2, 1)); // Function构造函数,动态创建函数对象
日期对象

Javascript的日期对象可以帮助程序员进行日期和时间的计算和处理。日期对象的实例化可以通过new Date()实现。

var now = new Date();
console.log(now); // 输出当前时间

var firstDay = new Date(2021, 0, 1); // 2021年1月1日
console.log(firstDay.getTime()); // getTime方法,返回从1970年1月1日0时0分0秒到指定日期的毫秒数
正则表达式对象

Javascript的正则表达式对象可以帮助程序员进行强大的字符串匹配和替换操作。正则表达式的定义可以使用字面量形式或RegExp构造函数形式。

var str = 'Hello world';
var reg = /l+/; // 匹配所有连续的l
console.log(str.match(reg)); // match方法,返回匹配结果数组

var reg2 = new RegExp('l+', 'g'); // 在构造函数形式下,第二个参数可以是修饰符
console.log(str.replace(reg2, 'L')); // replace方法,用新的字符串替换所有匹配的子串
全局对象

Javascript的全局对象是指在所有作用域中都可以访问的对象,其中包含了很多实用的方法和属性。全局对象在浏览器环境中是window对象,在Node.js环境中是global对象。

console.log(window); // 在浏览器环境下,window对象是全局对象
console.log(window.screen.width); // screen.width属性,返回屏幕宽度

console.log(global); // 在Node.js环境下,global对象是全局对象
console.log(global.process.cwd()); // process.cwd()方法,返回当前工作目录
函数库

Javascript的函数库是指封装了常用功能的函数集合,这些函数可以方便程序员进行开发和调试。常见的函数库有jQuery、Underscore、Lodash等。

jQuery

jQuery是一款广泛使用的Javascript函数库,提供了很多常用功能的封装,比如DOM操作、事件处理、动画效果等。

$(document).ready(function() { // 等价于window.onload=function(){}
    $('p').click(function() { // $函数可以选取DOM元素
        $(this).hide(); // hide方法可以隐藏DOM元素
    });
    $('#btn').click(function() {
        $('p').show(); // show方法可以显示DOM元素
    });
});
Underscore

Underscore是一款提供了很多实用函数的Javascript函数库,比如forEach、map、reduce、filter等。

_.forEach([1, 2, 3], function(value) { // forEach遍历数组
    console.log(value);
});
var result = _.map([1, 2, 3], function(value) { // map对数组每个元素进行加工
    return value * 2;
});
console.log(result); // 输出[2, 4, 6]
Lodash

Lodash是一款提供了很多实用函数的Javascript函数库,它可以轻松扩展Underscore的功能。

var result = _.chunk(['a', 'b', 'c', 'd'], 2); // chunk将数组拆成多个数组
console.log(result); // 输出[['a', 'b'], ['c', 'd']]

var result2 = _.filter([1, 2, 3, 4, 5], function(value) { // filter过滤数组
    return value % 2 == 0;
});
console.log(result2); // 输出[2, 4]
总结

主干js是Javascript开发的基础和核心部分,包括语言基础、内置对象、函数库等部分。掌握主干js的知识可以帮助程序员更高效地进行开发和应用。