[Javascript】前端面试基础3【每日学习并更新10】
Web开发中会话跟踪的方法有那些
- cookie
- session
- url重写
- 隐藏input
- ip地址
JS基本数据类型
- String:用于表示文本数据。
- Number:用于表示数值,包括整数和浮点数。
- BigInt:用于表示任意精度的整数。
- Boolean:用于表示逻辑值,即true或false。
- Undefined:当一个变量被声明了,但没有被赋值时,它的值就是undefined。
- Null:表示一个空值,即没有对象值被赋予变量。
- Symbol(ES6引入):用于创建唯一的标识符
Javascript常见数据结构和设计模式-CSDN博客
JS内置对象
Javascript中Object、Array、String-CSDN博客
- 0bject是JavaScript中所有对象的父对象
- 数据封装类对象:0bject . Array . Boolean . Number和 String
- 其他对象:Function . Arguments .Math、Date 、RegExp 、Error
Javascript基本规范
Javascript有几种类型的值
- 栈:原数据类型( Undefined ,Null ,Boolean ,Number .String )
- 堆:引用数据类型(对象、数组和函数)
- 两种类型的区别是:存储位置不同;
- 原始数据类型直接存储在栈( stack )中的简单数据段,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储;
- 引用数据类型存储在堆( heap )中的对象,占据空间大、大小不固定,如果存储在栈中,将会影响程序运行的性能;引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体
var person = { firstName: "John", lastName: "Doe", age: 50, greet: function() { console.log("Hello, my name is " + this.firstName + " " + this.lastName); }
}; person.greet();
Javascript创建对象的几种方式
1. 对象字面量
var person = { firstName: "John", lastName: "Doe", age: 50, greet: function() { console.log("Hello, my name is " + this.firstName + " " + this.lastName); } }; person.greet();2. 使用
new Object()var person = new Object(); person.firstName = "John"; person.lastName = "Doe"; person.age = 50; person.greet = function() { console.log("Hello, my name is " + this.firstName + " " + this.lastName); }; person.greet();3. 构造函数
构造函数是一种特殊的函数,用于初始化新创建的对象。通过
new关键字调用构造函数时,会创建一个新对象,并将这个新对象的内部[[Prototype]](即__proto__)链接到构造函数的prototype属性上,最后返回这个新对象。function Person(firstName, lastName, age) { this.firstName = firstName; this.lastName = lastName; this.age = age; this.greet = function() { console.log("Hello, my name is " + this.firstName + " " + this.lastName); }; } var person = new Person("John", "Doe", 50); person.greet();4. 工厂函数
工厂函数是一种封装了创建对象细节的函数,它返回一个对象。这种方法比直接使用
new Object()更加灵活。function createPerson(firstName, lastName, age) { var obj = new Object("I'm an Object"); obj.firstName = firstName; obj.lastName = lastName; obj.age = age; obj.greet = function() { console.log("Hello, my name is " + this.firstName + " " + this.lastName); }; return obj; } var person = createPerson("John", "Doe", 50); person.greet();5. 原型链
在JavaScript中,每个对象都有一个原型(
prototype),对象会继承原型的属性和方法。通过修改构造函数的prototype属性,可以实现多个实例共享同一套方法和属性。function Person(firstName, lastName, age) { this.firstName = firstName; this.lastName = lastName; this.age = age; } Person.prototype.greet = function() { console.log("Hello, my name is " + this.firstName + " " + this.lastName); }; var person1 = new Person("John", "Doe", 50); var person2 = new Person("Jane", "Doe", 40); person1.greet(); person2.greet();6. ES6 类
ES6引入了类的概念,使得对象的创建更加直观和易于理解。类语法是基于原型的面向对象编程的语法糖。
class Person { constructor(firstName, lastName, age) { this.firstName = firstName; this.lastName = lastName; this.age = age; } greet() { console.log("Hello, my name is " + this.firstName + " " + this.lastName); } } var person = new Person("John", "Doe", 50); person.greet();
eval()
- 它的功能是把对应的字符串解析成JS 代码并运行
- 应该避免使用eval ,不安全,非常耗性能(2次,一次解析成js 语句,一次执行)
- 由JSON字符串转换为JSON对象的时候可以用eval, var obj =eva1(' ( ' + str +')')
null与undefined
["1", "2", "3"].map(parseInt)=[1,NAN,NAN]
但是,这里有一个需要注意的陷阱。当 map 函数对数组中的每个元素调用 parseInt 时,parseInt 实际上可以接受两个参数:第一个参数是要解析的字符串,第二个参数是基数(即数字的进制)。在 map 函数中,parseInt 被调用时,除了当前元素(即字符串)作为第一个参数外,map 函数还会传递当前元素的索引(从0开始)作为第二个参数给 parseInt。
因此,你的代码实际上会这样执行:
- 第一个元素
"1",索引为0,parseInt("1", 0),由于基数为0,parseInt会根据字符串的格式来解析,这里"1"能被正确解析为十进制数1。 - 第二个元素
"2",索引为1,parseInt("2", 1),这里基数为1,但基数1不是一个有效的基数(有效的基数范围是2到36),因此parseInt会返回NaN(Not-a-Number)。 - 第三个元素
"3",索引为2,parseInt("3", 2),这里基数为2,但"3"在二进制中不是一个有效的数字,因此parseInt同样会返回NaN。
["1", "2", "3"].map(function(item) { return parseInt(item, 10); // 或者简单地 parseInt(item)
});----------------------------------------------------------------
["1", "2", "3"].map(item => parseInt(item, 10)); // 或者简单地 ["1", "2", "3"].map(parseInt) 如果环境允许默认基数----------------------------------------------------------------------------
//拓展
let numbers = ["10", "010", "0xA"];
let decimalNumbers = numbers.map(function(item) { // 检查字符串的前缀来确定基数 if (item.startsWith("0x") || item.startsWith("0X")) { // 十六进制 return parseInt(item, 16); } else if (item.startsWith("0")) { // 假设以0开头但不是"0x"或"0X"的是八进制(注意:现代JavaScript可能默认解析为十进制) // 为了明确性,我们显式指定基数为8 return parseInt(item, 8); } else { // 十进制 return parseInt(item, 10); }
}); console.log(decimalNumbers); // 输出: [10, 8, 10]
javascript代码中的"use strict";是什么意思
在JavaScript代码中,"use strict"; 是一个特殊的指令,用于启用严格模式(strict mode)。当在脚本或函数的顶部包含这个指令时,它告诉JavaScript引擎以更加严格的解释和执行代码的方式来运行代码。这有助于捕获一些常见的编码错误,使得代码更加安全、可预测和易于管理。
严格模式有几个主要的好处和限制:
-
捕获更多错误:在严格模式下,JavaScript会抛出更多的错误,从而帮助你更早地发现并修复问题。例如,它会阻止你使用未声明的变量(在未启用严格模式的情况下,这通常会导致全局变量被意外创建)。
-
禁用某些不安全或不确定的特性:严格模式会禁用或改变一些JavaScript的“不安全”特性,比如
with语句和eval()函数的行为。 -
使代码更加可预测:在严格模式下,JavaScript的行为在某些方面更加可预测,比如静默失败的操作(如将值赋给只读属性)会抛出错误。
-
提升性能:虽然这不是启用严格模式的主要动机,但一些JavaScript引擎在严格模式下能够执行更多的优化,因为严格模式限制了代码的行为,使得这些优化成为可能。
-
更清晰的代码意图:通过在代码顶部使用
"use strict";,你可以明确地向其他开发者表明这段代码是以更严格的标准编写的,这有助于维护代码的质量和一致性。
JSON

JS延迟加载方式
相关文章:
[Javascript】前端面试基础3【每日学习并更新10】
Web开发中会话跟踪的方法有那些 cookiesessionurl重写隐藏inputip地址 JS基本数据类型 String:用于表示文本数据。Number:用于表示数值,包括整数和浮点数。BigInt:用于表示任意精度的整数。Boolean:用于表示逻辑值…...
C++自定义字典树结构
代码 #include <iostream> using namespace std;class TrieNode { public:char data;TrieNode* children[26];bool isTerminal;TrieNode(char ch){data ch;for (int i 0; i < 26; i){children[i] NULL;}isTerminal false;} }; class Trie { public:TrieNode* ro…...
dockerfile部署wordpress
1.将容器直接提交成镜像 [rootlocalhost ~]# docker commit 8ecc7f6b9c12 nginx:1.1 sha256:9a2bb94ba6d8d952527df616febf3fbc8f842b3b9e28b7011b50c743cd7b233b [rootlocalhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx …...
CSS(二)——CSS 背景
CSS 背景 CSS 背景属性用于定义HTML元素的背景。 CSS 背景属性 Property描述background简写属性,作用是将背景属性设置在一个声明中。background-attachment背景图像是否固定或者随着页面的其余部分滚动。background-color设置元素的背景颜色。background-image把…...
开机出现grub无法进入系统_电脑开机出现grub解决方法
最近有小伙伴问我电脑开机出现grub无法进入系统怎么回事?电脑开机出grub的情况有很多,电脑上安装了Linux和Win10双系统,但是由于格式化删除了Linux之后,结果win10开机了之后,直接显示grub>,无法…...
uboot 设置bootargs配置内核网络挂载根文件系统
uboot 设置bootargs配置内核网络挂载根文件系统 uboot设置bootargs env set bootargs "mem256M consolettyAMA0,115200 root/dev/nfs init/linuxrc nfsrootnfs主机地址:nfs路径/busybox/rootfs_glibc_arm64,prototcp rw nfsvers3 rootwait ip板子地址:nfs主机地址:网关:2…...
Vue3+.NET6前后端分离式管理后台实战(三十一)
1,Vue3.NET6前后端分离式管理后台实战(三十一)...
22集 如何minimax密钥和groupid-《MCU嵌入式AI开发笔记》
22集 如何获取minimax密钥和groupid-《MCU嵌入式AI开发笔记》 minimax密钥获取 https://www.minimaxi.com/platform 进入minimax网站,注册登录后,进入“账户管理”, 然后再点击“接口密钥”,然后再点击“创建新的密钥”。 之…...
决策树的概念
决策树的概念 决策树是一种监督学习算法,主要用于分类任务。它通过构建一棵树结构模型来进行预测,其中每个内部节点表示一个特征属性上的判断条件,每条边代表一个判断结果对应的分支,而叶节点则代表最终的类别标签。 应用领域 …...
C++《类和对象》(中)
一、 类的默认成员函数介绍二、构造函数 构造函数名与类同名内置类型与自定义类型析构函数拷贝构造函数 C《类和对象》(中) 一、 类的默认成员函数介绍 默认成员函数就是⽤⼾没有显式实现,编译器会⾃动⽣成的成员函数称为默认成员函数。 那么我们主要学习的是1&…...
SpringBoot中JSR303校验
JSR是 Java EE 的一种标准,用于基于注解的对象数据验证。在Spring Boot应用中,你可以通过添加注解直接在POJO类中声明验证规则。这样可以确保在使用这些对象进行操作之前,它们满足业务规则。个人认为非常有用的,因为它减少了代码中…...
图像数据增强方法概述
图像数据增强方法概述 1. 什么是图像数据增强技术?2. 图像数据增强技术分类2.1 几何变换Python 示例代码 2.2 颜色变换2.3 噪声添加 3. 参考文献 1. 什么是图像数据增强技术? 基础概念:图像增强技术是计算机视觉和图像处理领域中的一个关键技术,主要用…...
【学习笔记】无人机系统(UAS)的连接、识别和跟踪(五)-无人机跟踪
目录 引言 5.3 无人机跟踪 5.3.1 无人机跟踪模型 5.3.2 无人机位置报告流程 5.3.3 无人机存在监测流程 引言 3GPP TS 23.256 技术规范,主要定义了3GPP系统对无人机(UAV)的连接性、身份识别、跟踪及A2X(Aircraft-to-Everyth…...
分享从零开始学习网络设备配置--任务6.1 实现计算机的安全接入
项目描述 随着网络技术的发展和应用范围的不断扩大,网络已经成为人们日常生活中必不可少的一部分。园区网作为给终端用户提供网络接入和基础服务的应用环境,其存在的网络安全隐患不断显现出来,如非人为的或自然力造成的故障、事故;…...
双向链表(C语言版)
1. 双向链表的结构 注意:这里的“带头”跟单链表的“头结点”是两个概念,实际上在单链表阶段称呼不太严谨,但是为了更好地理解就直接称为单链表的头结点。带头链表里的头结点,实际为“哨兵位”,哨兵位结点不存储任何有…...
【算法/学习】前缀和差分
前缀和&&差分目录 1. 前缀和的概念及作用 🌈概念 🌈用途 🌙一维前缀和 🌙二维前缀和 2. 差分的概念及用途 🌈概念: 🌈用途 🌙一维差分 🌙二维差分 1. …...
idea Project 不显示文件和目录
idea Project 不显示文件和目录 File - Close Project - 重新打开项目即可删除.idea文件夹,重新打开项目即可。 原因分析: 可能与使用不同ide例如java、python打开同一项目有关 参考: https://blog.csdn.net/hgnuxc_1993/article/details/132595900 解决打开IDE…...
Linux--Socket编程预备
目录 1. 理解源 IP 地址和目的 IP 地址 2.端口号 2.1端口号(port)是传输层协议的内容 2.2端口号范围划分 2.3理解 "端口号" 和 "进程 ID" 2.4理解 socket 3.传输层的典型代表 3.1认识 TCP 协议 3.2认识 UDP 协议 4. 网络字节序 5. socket 编程接…...
100个python的基本语法知识【下】
50. 压缩文件: import zipfilewith zipfile.ZipFile("file.zip", "r") as zip_ref:zip_ref.extractall("extracted")51. 数据库操作: import sqlite3conn sqlite3.connect("my_database.db") cursor conn.c…...
Git如何将一个分支上的修改转移到另一个分支
在我们使用git进行版本控制时,当代码写错分支,怎么将这些修改转移到正确的分支上去呢?这时,我们可以使用git stath命令来暂存我们的修改,然后再切换到其他分支 未commit(提交)操作时 1. 先将修…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
