JS编程核心之从变量到异步完全解析
作者:80530单词突击赢
JavaScript是一门单线程语言,但可以通过异步编程处理非阻塞任务,使用Promise或async/await来处理异步操作,这篇文章主要介绍了JS编程核心之从变量到异步完全解析的相关资料,需要的朋友可以参考下
一、变量与数据类型
变量声明
let:块级作用域const:常量(不可重新赋值)var:函数作用域(存在变量提升)
let a = 10; const PI = 3.14; var b = "hello";
数据类型
- 基本类型:
Number,String,Boolean,null,undefined,Symbol - 引用类型:
Object(含Array,Function等) - 类型检测:
typeof 42; // "number" typeof [1,2]; // "object" Array.isArray([1,2]); // true
- 基本类型:
二、运算符与类型转换
相等判断
==:隐式类型转换(1 == '1'→true)===:严格相等(类型和值均需相同)
类型转换
Number("123"); // 123 String(123); // "123" Boolean(0); // false
三、流程控制
条件语句
if (score > 90) { console.log("A"); } else if (score > 60) { console.log("B"); } else { console.log("C"); }循环语句
for (let i = 0; i < 5; i++) { console.log(i); } let arr = [10, 20, 30]; arr.forEach(item => console.log(item));
四、函数
函数定义
function add(a, b) { return a + b; } // 箭头函数 const multiply = (a, b) => a * b;作用域与闭包
function outer() { let x = 10; return function inner() { return x * 2; // 闭包访问外部变量 }; }
五、对象与原型
对象创建
let person = { name: "Alice", age: 30, greet() { console.log(`Hello, ${this.name}!`); } };原型链
function Animal(name) { this.name = name; } Animal.prototype.speak = function() { console.log(`${this.name} makes a sound.`); };
六、数组操作
let nums = [1, 2, 3]; // 增删元素 nums.push(4); // [1,2,3,4] nums.pop(); // [1,2,3] // 高阶函数 nums.map(x => x * 2); // [2,4,6] nums.filter(x => x > 1); // [2,3]
七、异步处理
Promise
fetchData() .then(data => processData(data)) .catch(error => console.error(error));
async/await
async function loadData() { try { const data = await fetchData(); console.log(data); } catch (error) { console.error(error); } }
八、练习题目
- 实现函数:将字符串反转(如
"hello"→"olleh") - 用
reduce计算数组[1,2,3,4]的平均值 - 解释以下代码输出:
for (var i = 0; i < 3; i++) { setTimeout(() => console.log(i), 100); }
提示:可通过浏览器控制台或Node.js环境运行代码验证结果。
到此这篇关于JS编程核心之从变量到异步完全解析的文章就介绍到这了,更多相关JS变量到异步内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
