JavaScript快速入门

简介: JavaScript快速入门

1.概述

JavaScript ,简称js,是一种高级的编程语言,主要用于前端开发。很多地方都会说js是解释型语言,轻量级,所以被用在前端。但其实这种说法并不准确。

这个世界上并没有绝对的解释型和编译型语言的存在,只是看在其工作的时候是用解释型的方式去执行它,还是编译型的方式去执行它。

现代的 web 浏览器都内置了 JavaScript 引擎。这个引擎负责以解释而不是编译的方式来执行 JavaScript 代码,所以让js在前端工作起来非常的轻量级。

2.引入方式

  1. 内部,在HTML页面上通过<script></script>标签来写。
  2. 外部,外部定义好的js文件可以通过<script src=”XXX.js”></script>来引入。
  1. 内联(不推荐),直接在HTML元素的属性标签里写js,例如:<button οnclick=”createParagraph()”></button>

3.调试

js不像java有编译过程的存在,js在浏览器中是被解释执行的,也就是说没有编译过程,没办法进行debug。只能通过console.log()方法来在控制台打印结果,进行调试。以chrome浏览器为例,按F12打开开发者工具,在console中执行下面一段代码:

会输出以下结果:

4.基础语法

4.1.变量

JS是弱类型语言,变量的类型根据存储的值来确定。

JS的变量有两种声明方式,var定义全局变量、let定义局部变量。

var name="DasAuto":
let age=25;
console.log("name:"+name+"t"+"age:"+age);

4.2.常量

JS里用关键词const来声明常量。

常量声明时赋值,赋值后不能改变。

const sex="男";
sex="女";
console.log(sex);

4.3.运算符

js和Java一样,支持

单目运算符:自加自减自乘自除

双目运算符:加减乘除

三目运算符:

var name="DasAuto";
let age=25;
age=age>=25?1:0;
console.log("name:"+name+"\t"+ "age:" +age);

4.4.流程控制

4.4.1.顺序

这个就略过不表了吧,本篇文章的受众读者,应该都是有基础的。

4.4.2.判断

和JAVA一样,标准的if else/else if的格式。

代码示例:

var number=3;
if(number==1){
    console.log("number is 1")}
else if(number==2){
    console.log("number is 2");
}else{
    console.log("number is 3");
}

4.4.3.循环

和JAVA一样,支持while、do-while、for,三种循环

while(true){
}
 
do{
 
}while(true);
 
for(let i=0;i<1;i++){console.log(i);

4.5.函数

关键字 函数名(参数列表){

       方法体

}

在js中函数是一个内置对象,所以可以被赋值给变量,以及在ES6以后引入了箭头函数这一高效的函数定义方法,有点类似于lambda表达式:

   // 无参数,返回 'Hello'
   const sayHello = () => 'Hello';
 
   // 单个参数,不需要括号
   const double = num => num * 2;
 
   // 多个参数,需要括号
   const add = (num1, num2) => num1 + num2;

4.6.对象

JS的对象有三种定义方式:

1.字面量(元组)

2.构造函数

3.new Object()

1.字面量

通过KV键值对的多元组来定义(“{ }”在JAVA中表示数组,在JS中表示元组),数组中可以嵌数组(对象中可以嵌对象)。可以通过对象.属性,访问属性,也可以通过访问数组下标的方式来访问属性,通过数组下标访问时k值为字符串类型。

   const person = {
     firstName: 'John',
     lastName: 'Doe',
     age: 30,
     sayHello: function() {
       console.log(`Hello, my name is ${this.firstName} ${this.lastName}`);
     }
   };
   person.sayHello(); // 输出 "Hello, my name is John Doe"

2.构造函数

由于函数是js中的一个内置对象,所以是可以new出来的,可以用函数的方式类定义类。

   function Person(firstName, lastName) {
     this.firstName = firstName;
     this.lastName = lastName;
     this.age = 30;
     this.sayHello = function() {
       console.log(`Hello, my name is ${this.firstName} ${this.lastName}`);
     };
   }
   
   var john = new Person('John', 'Doe');
   john.sayHello(); // 输出 "Hello, my name is John Doe"

3.new Object

Object也是js中的一个内置对象。

   var person = new Object();
   person.firstName = 'John';
   person.lastName = 'Doe';
   person.age = 30;
   person.sayHello = function() {
     console.log(`Hello, my name is ${this.firstName} ${this.lastName}`);
   };
   person.sayHello(); // 输出 "Hello, my name is John Doe"

4.7.数组

js的数组和Java的数组不同,js的数组不需要提前声明空间大小,每增加一个元素数组内部自动会开辟空间。

//两种定义方式
var a=new Array();
var b=[];
var c=[1,2,3];
a[o]=1;
b[0]=1;
console.log(a[o]);console.log(b[o]);console.log(c[o]);
//遍历数组
for(let i=0;i<c.length;i++){
    console.log(c[i]);
}
//Js的数组具有栈的特点,可以进行压栈,出栈c.push[4];
c.pop;

5.高级特性

除了基础语法外,js有一些高级特性在编程中我们可能会较为常用到。

1. 函数是第一类对象(First-Class Functions):

在 JavaScript 中,函数被视为第一类对象。这意味着函数可以被赋值给变量,可以作为参数传递给其他函数,也可以作为其他函数的返回值。

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

2. 高阶函数(Higher-Order Functions):

高阶函数是能够接受函数作为参数或将函数作为返回值的函数。

function operate(num, operation) {
  return operation(num);
}
 
const double = function(x) {
  return x * 2;
};
 
const square = function(x) {
  return x * x;
};
 
console.log(operate(5, double)); // 输出 10
console.log(operate(3, square)); // 输出 9

3. 异步编程和回调函数:

JavaScript 通过回调函数(callbacks)、Promise 和 async/await 等方式支持异步编程,处理诸如网络请求、文件读取等非阻塞 I/O 操作。

function fetchData(callback) {
  setTimeout(function() {
    const data = "Data fetched from server";
    callback(data);
  }, 2000);
}
 
function processData(data) {
  console.log("Processing data: " + data);
}
 
fetchData(processData); // 两秒后输出 "Processing data: Data fetched from server"

4. Promise 和异步函数(Async/Await):

Promise 是一种用于处理异步操作的对象,async/await 是用于更简洁地处理异步代码的语法糖。

  function fetchData() {
  return new Promise(function(resolve, reject) {
    setTimeout(function() {
      const data = "Data fetched from server";
      resolve(data);
    }, 2000);
  });
}
 
async function processData() {
  const data = await fetchData();
  console.log("Processing data: " + data);
}
 
processData(); // 两秒后输出 "Processing data: Data fetched from server"

目录
相关文章
|
5月前
|
存储 监控 JavaScript
Node.js 性能平台5分钟快速入门
首先,确保拥有阿里云账号并开通服务,以及一台可上网的服务器。然后,创建应用并记下App ID和App Secret。通过tnvm安装Node.js性能平台组件,包括alinode和agenthub,检查安装成功的方法是`which node`和`which agenthub`命令显示路径包含`.tnvm`。接着,启动agenthub,并在服务器上运行一个示例应用(demo.js),该应用模拟计算密集型任务。最后,通过阿里云控制台观察监控数据和执行诊断操作。注意,性能平台每分钟上传一次日志,可能需等待几分钟才能看到数据。详细部署指南可参考官方文档。
74 6
|
4月前
|
JavaScript 前端开发 安全
【JavaScript 】DOM操作快速入门
【JavaScript 】DOM操作快速入门
42 2
|
3月前
|
SQL 前端开发 JavaScript
JavaScript快速入门 有这一篇就够!
JavaScript快速入门 有这一篇就够!
|
3月前
|
存储 JavaScript 前端开发
如何快速入门使用Vue.js
如何快速入门使用Vue.js
30 0
|
4月前
|
JavaScript 前端开发 Java
JavaScript快速入门
JavaScript快速入门
27 1
|
5月前
|
JavaScript 前端开发 Java
JavaScript 快速入门手册
JavaScript 快速入门手册
|
JavaScript
【JS】快速入门DOM
【JS】快速入门DOM
53 0
|
5月前
|
JavaScript 前端开发 Java
JavaScript 快速入门手册
JavaScript 快速入门手册
34 0
|
5月前
|
JavaScript 前端开发
node.js 快速入门
node.js 快速入门
56 0
|
5月前
|
Web App开发 JavaScript 前端开发
【Node.js】大前端技能最通俗易懂的讲解 快速入门必看
【Node.js】大前端技能最通俗易懂的讲解 快速入门必看
73 0
下一篇
无影云桌面