首页 > 编程语言 >JavaScript笔记

JavaScript笔记

时间:2023-12-08 22:44:59浏览次数:42  
标签:console name 对象 JavaScript 笔记 const log

  1. JavaScript的组成:

         1.数据类型:JavaScript有8种基本数据类型,包括Undefined、Null、Boolean、Number、String、BigInt、Symbol和Object。

  1. 变量:在JavaScript中,可以使用var、let或const关键字声明变量。

  2. 函数:JavaScript中的函数是一种可重用的代码块,可以使用function关键字定义。

  3. 对象:JavaScript中的对象是一种键值对的集合,可以使用{}表示。

  4. 数组:JavaScript中的数组是一种有序的数据集合,可以使用[]表示。

  5. 控制结构:JavaScript中有if、else if、else、switch、for、while等控制结构。

  6. 循环结构:JavaScript中有for循环、while循环和do...while循环。

  7. 事件处理:JavaScript中可以使用addEventListener方法为元素添加事件监听器。

  8. 内置对象:JavaScript中有很多内置对象,如Math、Date、Array、String等。

  9. 原型链:JavaScript中的对象是通过原型链实现继承的。

2.JavaScript的特点:

  1. 动态类型语言:JavaScript是一种动态类型的语言,这意味着变量的类型可以在运行时改变。

  2. 解释型语言:JavaScript是一种解释型语言,它不需要编译成二进制代码就可以运行。

  3. 面向对象编程:虽然JavaScript不是纯粹的面向对象编程语言,但它支持面向对象编程的概念,如类、对象和继承。

  4. 事件驱动:JavaScript是事件驱动的,这意味着程序中的事件(如用户点击按钮或键盘输入)会触发相应的函数执行。

  5. 异步编程:JavaScript支持异步编程,可以使用回调函数、Promises和async/await等技术处理异步操作。

  6. 跨平台:JavaScript可以在多种浏览器和操作系统上运行,具有很好的跨平台兼容性。

  7. 交互性强:JavaScript可以与HTML和CSS结合使用,实现丰富的网页交互效果。

3.常量变量

  1. 变量声明:在JavaScript中,可以使用varletconst关键字来声明变量。
var a = 10; // 使用var声明变量
let b = 20; // 使用let声明变量
const c = 30; // 使用const声明常量
  1. 数据类型:JavaScript有以下几种基本数据类型:
  • Number:数字类型,包括整数和浮点数。
  • String:字符串类型,用双引号或单引号包围的文本。
  • Boolean:布尔类型,表示真或假。
  • Undefined:未定义类型,表示变量未赋值。
  • Null:空类型,表示变量没有值。

 let num = 42; // Number类型

let str = "Hello, World!"; // String类型
let bool = true; // Boolean类型
let undef; // Undefined类型
let nullValue = null; // Null类型
  1. 运算符:JavaScript支持以下运算符:
  • 算术运算符:+、-、*、/、%(取模)、++(自增)、--(自减)。
  • 比较运算符:==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。
  • 逻辑运算符:&&(与)、||(或)、!(非)。
  • 位运算符:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移)、>>(右移)。
let a = 5;
let b = 10;
console.log(a + b); // 加法
console.log(a - b); // 减法
console.log(a * b); // 乘法
console.log(a / b); // 除法
console.log(a % b); // 取模
console.log(a++); // 自增
console.log(b--); // 自减
  1. 控制结构:JavaScript支持if语句、for循环、while循环等控制结构。
// if语句
if (a > b) {
  console.log("a大于b");
} else if (a < b) {
  console.log("a小于b");
} else {
  console.log("a等于b");
}

// for循环
for (let i = 0; i < 5; i++) {
  console.log(i);
}

// while循环
let j = 0;
while (j < 5) {
  console.log(j);
  j++;
}
  1. 函数:在JavaScript中,可以使用function关键字来定义函数。

function add(a, b) {

  return a + b;
}

console.log(add(1, 2)); // 调用函数并输出结果

4.在JavaScript中,变量分为全局变量和局部变量。全局变量在整个程序范围内都可以访问,而局部变量只能在其所在的函数内部访问。

全局变量的声明方式是在函数外部使用varletconst关键字定义的变量。例如:

var globalVar = "我是全局变量";
function exampleFunction() {
  console.log(globalVar); // 可以访问全局变量
}
exampleFunction();

局部变量的声明方式是在函数内部使用varletconst关键字定义的变量。例如:

function exampleFunction() {

  var localVar = "我是局部变量";
  console.log(localVar); // 只能访问局部变量
}
exampleFunction();
console.log(localVar); // 无法访问局部变量

5.JavaScript中的数据类型主要有数字(Number)、字符串(String)、布尔值(Boolean)和对象(Object)。   6.JavaScript中的运算符包括算术运算符(+、-、*、/等)、比较运算符(==、!=、>、<等)、逻辑运算符(&&、||等)和位运算符(&、|、^等)。   7.JavaScript中的控制结构包括条件语句(if...else)、循环语句(for、while等)和跳转语句(break、continue、return等)。
  1. 条件语句(if...else):用于根据条件执行不同的代码块。
if (条件) {
  // 如果条件为真,执行这里的代码
} else {
  // 如果条件为假,执行这里的代码
}
  1. 循环语句(for、while):用于重复执行一段代码。
  • for循环:
for (初始化; 条件; 更新) {
  // 当条件为真时,执行这里的代码
}
  • while循环:
while (条件) {
  // 当条件为真时,执行这里的代码
}
  1. 跳转语句(break、continue、return):用于在循环或条件语句中提前结束执行。
  • break:跳出当前循环或switch语句。
if (条件) {
  break;
}
  • continue:跳过当前循环的剩余部分,直接进入下一次循环。
for (初始化; 条件; 更新) {
  if (条件) {
    continue;
  }
  // 当条件为假时,执行这里的代码
}
  • return:从函数中返回一个值,并终止函数的执行。
function example() {
  if (条件) {
    return 值;
  }
  // 当条件为假时,执行这里的代码
}

8.JavaScript中的函数是一段可重用的代码块,可以接受参数并返回结果。可以使用function关键字定义函数,或者使用箭头函数(=>)简化函数定义。   9.在JavaScript中,数组是一种有序的数据集合,可以存储多个值。数组的元素可以通过索引访问,也可以使用push方法添加新元素。

例如,创建一个空数组:

var arr = [];

通过索引访问数组元素:

var firstElement = arr[0];

向数组中添加新元素:

arr.push(1); // 在数组末尾添加元素1
arr.push("hello"); // 在数组末尾添加字符串"hello"

删除数组中的元素:

arr.pop(); // 删除数组末尾的元素
arr.shift(); // 删除数组开头的元素

获取数组的长度:

var length = arr.length;

遍历数组:

for (var i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}
 

10.在JavaScript中,对象是一种无序的数据集合,以键值对的形式存储数据。对象的属性和方法可以通过点号或方括号访问。

例如,创建一个空对象:

var obj = {};

通过点号访问对象属性:

var name = obj.name;

通过方括号访问对象属性:

var age = obj['age'];

添加对象属性:

obj.name = '张三';
obj['age'] = 25;

删除对象属性:

delete obj.name;

检查对象是否具有某个属性:

if ('name' in obj) {
  console.log('对象有name属性');
}
11.JavaScript中的事件是用户与网页交互的行为,如点击按钮、滚动页面等。可以使用addEventListener方法为元素添加事件监听器,以便在事件发生时执行相应的代码。

在JavaScript中,可以使用addEventListener方法为元素添加事件监听器。这个方法接受两个参数:事件类型(如"click"、"mouseover"等)和要执行的回调函数。当指定的事件发生时,回调函数将被调用。

以下是一个简单的示例,演示如何使用addEventListener方法为按钮添加点击事件监听器:

// 获取按钮元素
var button = document.getElementById("myButton");

// 定义点击事件的回调函数
function handleClick() {
  alert("按钮被点击了!");
}

// 为按钮添加点击事件监听器
button.addEventListener("click", handleClick);
12.JavaScript中的异步编程是指通过回调函数、Promises或async/await等方式实现非阻塞的代码执行。这可以提高程序的性能,特别是在处理大量数据或进行网络请求时。

在JavaScript中,异步编程是一种处理程序执行顺序的方式,它允许程序在等待某个操作完成时继续执行其他任务。这可以提高程序的性能,特别是在处理大量数据或进行网络请求时。

  1. 回调函数:回调函数是一种常见的异步编程方式,它将一个函数作为参数传递给另一个函数,当异步操作完成时,调用这个函数。
function asyncFunction(callback) {
  // 异步操作
  setTimeout(function() {
    callback('异步操作完成');
  }, 1000);
}

asyncFunction(function(result) {
  console.log(result); // 输出 "异步操作完成"
});
  1. Promises:Promises是ES6引入的一种用于处理异步操作的对象。它有三种状态:pending(待定)、fulfilled(已成功)和rejected(已失败)。Promises提供了then方法来处理异步操作的结果,以及catch方法来处理错误。
function asyncFunction() {
  return new Promise(function(resolve, reject) {
    // 异步操作
    setTimeout(function() {
      resolve('异步操作完成');
    }, 1000);
  });
}

asyncFunction().then(function(result) {
  console.log(result); // 输出 "异步操作完成"
}).catch(function(error) {
  console.error(error);
});
  1. async/await:async/await是ES7引入的一种更简洁的异步编程方式。它使用async关键字定义一个异步函数,然后使用await关键字等待异步操作的结果。
async function asyncFunction() {
  // 异步操作
  const result = await new Promise(function(resolve, reject) {
    setTimeout(function() {
      resolve('异步操作完成');
    }, 1000);
  });

  console.log(result); // 输出 "异步操作完成"
}

asyncFunction();
13.JavaScript中的原型链是一种用于实现对象继承的方法。每个对象都有一个指向其原型对象的指针,通过这个指针可以访问到该对象的所有属性和方法。

在JavaScript中,原型链是通过原型对象实现的。每个对象都有一个指向其原型对象的指针,通过这个指针可以访问到该对象的所有属性和方法。原型链的创建过程如下:

  1. 创建一个构造函数,用于定义对象的结构。
  2. 在构造函数的原型上添加属性和方法。
  3. 使用构造函数创建新的对象实例。
  4. 新创建的对象实例会继承构造函数原型上的属性和方法。

下面是一个简单的示例:

// 构造函数
function Person(name, age) {
  this.name = name;
  this.age = age;
}

// 在构造函数的原型上添加方法
Person.prototype.sayHello = function() {
  console.log("Hello, my name is " + this.name + " and I am " + this.age + " years old.");
};

// 使用构造函数创建对象实例
var person1 = new Person("Alice", 30);
var person2 = new Person("Bob", 25);

// 调用对象实例的方法
person1.sayHello(); // 输出 "Hello, my name is Alice and I am 30 years old."
person2.sayHello(); // 输出 "Hello, my name is Bob and I am 25 years old."

在这个示例中,Person是一个构造函数,它接受两个参数nameage。我们在Person的原型上添加了一个名为sayHello的方法。当我们使用new Person()创建新的对象实例时,这些实例会自动继承Person原型上的sayHello方法。

14.在JavaScript中,this关键字表示当前执行上下文的对象。在不同的上下文中,this的值可能会有所不同。例如,在全局作用域中,this指向全局对象;在函数内部,this指向调用该函数的对象。

  1. 在全局作用域中,this指向全局对象(在浏览器中是window对象)。
function test() {
  console.log(this); // 输出全局对象(在浏览器中是window对象)
}
test();
  1. 在函数内部,this指向调用该函数的对象。
function Person(name) {
  this.name = name;
}

var person1 = new Person("张三");
console.log(person1.name); // 输出 "张三"

function test() {
  console.log(this.name);
}

var person2 = new Person("李四");
test.call(person2); // 输出 "李四"
  1. 在事件处理程序中,this指向触发事件的元素。
<button id="btn">点击我</button>

<script>
  document.getElementById("btn").addEventListener("click", function() {
    console.log(this); // 输出触发事件的元素(按钮元素)
  });
</script>
  1. 在箭头函数中,this指向定义时所在的上下文。
function Person(name) {
  this.name = name;
}

var person1 = new Person("张三");
var person2 = new Person("李四");

var getPersonName = () => {
  console.log(this.name);
};

getPersonName.call(person1); // 输出 "张三"
getPersonName.call(person2); // 输出 "李四"

15.在JavaScript中,使用new操作符创建对象时,需要遵循以下步骤:

  1. 定义一个构造函数,该构造函数包含用于初始化对象的属性和方法。
  2. 使用new关键字调用构造函数,并将返回的对象赋值给一个变量。
  3. 如果构造函数没有显式地返回一个对象,那么new操作符会自动将返回值设置为新创建的对象实例。

示例代码:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

// 使用new关键字调用构造函数
var person1 = new Person("张三", 30);

// 输出person1的属性
console.log(person1.name); // 输出 "张三"
console.log(person1.age); // 输出 30
16.JavaScript中的模板字符串是一种方便的字符串拼接方式,可以使用反引号(`)包围字符串,并在其中使用${}插入变量。

例如,以下代码展示了如何使用模板字符串拼接字符串:

const name = "张三";
const age = 25;
const message = `我的名字是${name},我今年${age}岁。`;
console.log(message); // 输出 "我的名字是张三,我今年25岁。"
17.JavaScript中的正则表达式是一种用于匹配字符串的模式。可以使用RegExp对象或字面量语法创建正则表达式,然后使用match、search、replace等方法进行字符串操作。
  1. 创建正则表达式:

    • 使用RegExp对象:const regex = new RegExp('pattern', 'flags');
    • 使用字面量语法:const regex = /pattern/flags;
  2. 匹配字符串:

    • match()方法:str.match(regex),返回一个数组,包含匹配到的结果。如果没有匹配到任何结果,返回null。
    • exec()方法:regex.exec(str),在字符串中查找匹配项,返回一个数组,包含匹配到的结果。如果没有匹配到任何结果,返回null。
  3. 搜索字符串:

    • search()方法:str.search(regex),返回匹配到的第一个结果的索引,如果没有匹配到任何结果,返回-1。
  4. 替换字符串:

    • replace()方法:str.replace(regex, 'replacement'),将匹配到的所有结果替换为指定的字符串,并返回替换后的字符串。

示例代码:

// 创建正则表达式
const regex = /hello/i;

// 匹配字符串
const str1 = 'Hello, world!';
const result1 = str1.match(regex); // ['Hello']
const result2 = regex.exec(str1); // ['Hello']

// 搜索字符串
const result3 = str1.search(regex); // 0

// 替换字符串
const result4 = str1.replace(regex, 'Hi'); // 'Hi, world!'
18.JavaScript中的Date对象用于处理日期和时间。可以使用构造函数创建Date对象,然后使用getter和setter方法获取和设置日期和时间的各个部分。
  1. 创建Date对象:
    可以使用构造函数创建Date对象,如下所示:

    const date = new Date();
    

    这将创建一个表示当前日期和时间的Date对象。

  2. 获取日期和时间的各个部分:
    可以使用getter方法获取日期和时间的各个部分,如下所示:

    const year = date.getFullYear(); // 获取年份
    const month = date.getMonth() + 1; // 获取月份(注意:月份是从0开始的,所以需要加1)
    const day = date.getDate(); // 获取日期
    const hours = date.getHours(); // 获取小时
    const minutes = date.getMinutes(); // 获取分钟
    const seconds = date.getSeconds(); // 获取秒数
    
  3. 设置日期和时间的各个部分:
    可以使用setter方法设置日期和时间的各个部分,如下所示:

    date.setFullYear(year); // 设置年份
    date.setMonth(month - 1); // 设置月份(注意:月份是从0开始的,所以需要减1)
    date.setDate(day); // 设置日期
    date.setHours(hours); // 设置小时
    date.setMinutes(minutes); // 设置分钟
    date.setSeconds(seconds); // 设置秒数
    
  4. 格式化日期和时间:
    可以使用toLocaleString、toDateString等方法将Date对象格式化为字符串,如下所示:

    const formattedDate = date.toLocaleDateString(); // 格式化为本地日期字符串
    const formattedTime = date.toLocaleTimeString(); // 格式化为本地时间字符串
19.JavaScript中的Math对象提供了一些数学常数和函数,如圆周率π、平方根sqrt等。还可以使用Math对象的方法进行数学计算,如取整floor、四舍五入round等。
  1. Math对象提供的一些数学常数:

    • PI:圆周率π,约等于3.141592653589793
    • E:自然对数的底数,约等于2.718281828459045
    • LN2:自然对数2的值,约等于0.6931471805599453
    • LN10:自然对数10的值,约等于2.302585092994046
  2. Math对象提供的一些数学函数:

    • sqrt(x):返回x的平方根
    • pow(x, y):返回x的y次方
    • abs(x):返回x的绝对值
    • max(a, b, c, ...):返回a、b、c等中的最大值
    • min(a, b, c, ...):返回a、b、c等中的最小值
  3. Math对象提供的一些数学计算方法:

    • Math.floor(x):返回小于或等于x的最大整数
    • Math.ceil(x):返回大于或等于x的最小整数
    • Math.round(x):返回四舍五入后的整数
    • Math.random():返回一个0到1之间的随机数(包括0,不包括1)
20.JavaScript中的JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,可以将JavaScript对象转换为字符串,以便在网络上传输或存储。

JSON是一种数据格式,它使用键值对来表示数据。在JavaScript中,可以使用JSON.stringify()方法将JavaScript对象转换为JSON字符串,使用JSON.parse()方法将JSON字符串转换为JavaScript对象。
以下是一个简单的示例代码:

// 创建一个JavaScript对象
var obj = {
  "name": "John",
  "age": 30,
  "city": "New York"
};

// 将JavaScript对象转换为JSON字符串
var jsonString = JSON.stringify(obj);
console.log(jsonString); // 输出:{"name":"John","age":30,"city":"New York"}

// 将JSON字符串转换为JavaScript对象
var parsedObj = JSON.parse(jsonString);
console.log(parsedObj); // 输出:{ name: 'John', age: 30, city: 'New York' }

在上面的示例中,我们首先创建了一个JavaScript对象obj,然后使用JSON.stringify()方法将其转换为JSON字符串jsonString。接着,我们使用JSON.parse()方法将JSON字符串转换回JavaScript对象parsedObj

 

标签:console,name,对象,JavaScript,笔记,const,log
From: https://www.cnblogs.com/zjzj0207/p/17889206.html

相关文章

  • 软件构造笔记
    今天软件构造考试结束了,这门课真的上的听玄幻的主要通过对ppt的整理得到的笔记格式是word里的格式,有原件和ppt,但是不方便直接发  有重构的书pdf软件构造前言l 推荐书目代码大全 代码整洁之道  重构改善既有代码设计l 主要都是ppt里的  合肥工业大学张高峰......
  • 【CCFCSP】2209真题笔记
    -1.如此编码分析daisuki代数题了,直接无脑套公式子任务有提示,记得参考测试数据:1532767222222222222222预期结果:111111111111111AC:#include<iostream>usingnamespacestd;constintmaxn=25;intn,m,tmp;inta[maxn],b[maxn];......
  • 第二周阅读笔记|人月神话
    9.23阅读了贵族专制、民主政治和系统设计我发现这个作者写的还是蛮通俗易懂的,而且有点引经据典的味道,读着还蛮津津有味的。功能,而非简洁,总是被用来衡量设计人员工作的出色程度。这是错的,任何事情我们都应该从他的实用性出发,拒绝假大空。因此,易用性实际上需要设计的一致性和概念......
  • HTML笔记
    1.什么是HTMl:HTML(HyperTextMarkupLanguage)是一种用于创建网页的标准标记语言。它使用一系列标签来定义网页的结构、内容和样式。HTML文档由一系列的元素组成,这些元素包括标题、段落、链接、图片、列表等。通过使用HTML标签,开发者可以创建出具有交互性和动态效果的网页。2.HTML......
  • 二分——acwing算法基础课笔记
    个人笔记,欢迎补充、指正。此次完全以个人理解来写。整数二分 整数二分有两种,分别是找左边界和找右边界。 寻找符合要求的左边界:绿色点intbsearch_1(intl,intr){while(l<r){intmid=l+r>>1;//对应下界,最左if(check(mid))r=......
  • 秦疆的Java课程笔记:64 面向对象 构造器详解
    类中的构造器也称为构造方法,世在进行创建对象的时候必须要调用的。并且构造器有以下两个特点必须和类的名字相同必须没有返回类型,也不能写void构造器必须掌握!一个类即使什么也没写,也会存在一个方法//写一个空的Person类=========================publicclassPer......
  • <学习笔记> 二项式反演
    容斥原理容斥原理的式子\[|A1∪A2∪...∪An|=\sum_{1≤i≤n}|Ai|−\sum_{1≤i<j≤n}|Ai∩Aj|+...+(−1)^{n−1}×|A1∩A2∩...∩An|\]一般来说不会直接用容斥原理这个式子,而是考虑一种特殊情况:交集的大小只与交集的数量有关。也就是说,我们可以用$f[x]$来表示\(n\)个集合的......
  • 如何做读书笔记
    主要记录如何读书1高效阅读我们在上学时听到比较多一句话就是“读书无用论”,但是相反的是很多大佬讲座时都会劝我们多读书,为什么会有这么大的反差?因为读书方式不同!“无用”是无效阅读,与之相反的就是高效阅读。高效阅读关键在于做,而不只是读。为什么会这样说?因为我们阅读目的......
  • 打印模板学习笔记
     运算1、打印模板多则运算(相当于C#if、switch)//方法1嵌套iif函数=IIF(Fields!盈亏标志.Value="1","盘平",IIF(Fields!盈亏标志.Value="2","盘赢","盘亏"))=Switch((Fields.Item("盘点盈亏标志(黑-盘平,红-盘盈,蓝-盘亏,粗体-停用)").Value)="1","......
  • JetBrains WebStorm 2023.3 (macOS, Linux, Windows) - 最智能的 JavaScript IDE
    JetBrainsWebStorm2023.3(macOS,Linux,Windows)-最智能的JavaScriptIDE请访问原文链接:https://sysin.org/blog/jb-webstorm-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsWebStorm-最智能的JavaScriptIDEWebStorm是一个适用于JavaSc......