前端学习——JS学习

文章目录

  • 1. 定义变量,关键字 var、let、const
  • 2. 定义变量,数据类型
  • 3. 数组变量的操作
  • 4. 对象的操作
  • 5. JSON 字符串

1. 定义变量,关键字 var、let、const

这里主要是对var、let做比较

/** 1. var存在变量提升、let不存在变量提升 
**/
console.log(a); // undefined(通过)
var a = 10;console.log(a); // ReferenceError: a is not defined(报错)
let a = 10;/** 2. var可以多次声明、let不可以多次声明 
**/
var a = 10;
var a = 20;
console.log(a); // 20let a = 10;
let a = 20; // Uncaught SyntaxError: Identifier 'a' has already been declared

简单说一下const的使用

/**1. const声明一个只读的变量,声明后,值就不能改变
**/
const a = 10;
a = 20;  // TypeError: Assignment to constant variable./**2. const必须初始化
**/
const a;  // SyntaxError: Missing initializer in const declaration
const a = 10; // ok/**3. const并不是变量的值不能改动,而是变量指向的内存地址所保存的数据不得改动
**/
const obj = {age: 17
}
obj.age = 18;  // okobj = {		//  SyntaxError: Identifier 'obj' has already been declaredage: 18
}

2. 定义变量,数据类型

var length = 16;                                  // Number 通过数字字面量赋值 
var points = x * 10;                              // Number 通过表达式字面量赋值
var lastName = "Johnson";                         // String 通过字符串字面量赋值
var cars = ["Saab", "Volvo", "BMW"];              // Array  通过数组字面量赋值
var person = {firstName:"John", lastName:"Doe"};  // Object 通过对象字面量赋值typeof "John"                // 返回 string
typeof 3.14                  // 返回 number
typeof false                 // 返回 boolean
typeof [1,2,3,4]             // 返回 object
typeof {name:'John', age:34} // 返回 object

3. 数组变量的操作

1. 添加元素

let arr=[1,2,3,4];
arr.push(5);
console.log(arr);	//得到[1,2,3,4,5]

4. 对象的操作

1. 创建对象

let person = {firstName:"John",lastName:"Doe",age:50,eyeColor:"blue"
};

2. 访问对象属性

let name=person.lastname;
let name=person["lastname"];

3. 添加新属性

//创建obj对象
let obj = {};
//为对象添加动态属性
obj.userName = "admin";
obj.passWord = "123456";
//输出
console.log(obj);    

在这里插入图片描述
4. 删除属性

//创建obj对象
let obj = {};
//为对象添加动态属性
obj.userName = "admin";
obj.passWord = "123456";
//移除属性
delete obj.passWord;
//输出
console.log(obj);   

在这里插入图片描述
5. 两个对象合并

let arr1 = {a:1,b:2,c:3
};
let arr2 = {d:4,e:5,a:6
};
// 拓展运算符,后面相同的属性覆盖前一个
let arr3={...arr1,...arr2};

5. JSON 字符串

let text = '{ "sites" : [' +'{ "name":"Runoob" , "url":"www.runoob.com" },' +'{ "name":"Google" , "url":"www.google.com" },' +'{ "name":"Taobao" , "url":"www.taobao.com" } ]}';// JSON字符串转换JS对象
obj = JSON.parse(text);// JS对象转JSON字符串
let text2 = JSON.stringify(obj);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/487978.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MFC 配置Halcon

1.新建一个MFC 工程,Halcon 为64位,所以先将工程改为x64 > VC 目录设置包含目录和库目录 包含目录 库目录 c/c ->常规 链接器 ->常规 > 链接器输入 在窗口中添加头文件 #include "HalconCpp.h" #include "Halcon.h"…

robots.txt 文件规则

robots.txt 是一种用于网站根目录的文本文件,其主要目的在于指示网络爬虫(web crawlers)和其他网页机器人(bots)哪些页面可以抓取,以及哪些页面不应该被抓取。可以看作是网站和搜索引擎机器人之间的一个协议…

强大的文本绘图——PlantUML

PlantUML是一款开源工具,它允许用户通过简单的文本描述来创建UML图(统一建模语言图)。这种方法可以快速地绘制类图、用例图、序列图、状态图、活动图、组件图和部署图等UML图表。PlantUML使用一种领域特定语言(DSL)&am…

Unet 高阶分割网络实战、多类别分割、迁移学习(deeplab、resnet101等等)

1、前言 Unet 图像分割之前介绍了不少,具体可以参考 图像分割专栏 为了实现多类别的自适应分割,前段时间利用numpy的unique函数实现了一个项目。通过numpy函数将mask的灰度值提取出来,保存在txt文本里,这样txt里面就会有类似0 1…

RisingWave最佳实践-利用Dynamic filters 和 Temporal filters 实现监控告警

心得的体会 刚过了年刚开工,闲暇之余调研了分布式SQL流处理数据库–RisingWave,本人是Flink(包括FlinkSQL和Flink DataStream API)的资深用户,但接触到RisingWave令我眼前一亮,并且拿我们生产上的监控告警…

快速排序法的名字由来,排序步骤是什么,最坏情况下的排序次数如何计算得来的呢?

问题描述: 快速排序法的名字由来,排序步骤是什么,最坏情况下的排序次数如何计算得来的呢? 问题解答: 快速排序法的名字来源于其排序速度快的特点。它是由英国计算机科学家 Tony Hoare 于1960年提出的,最…

劫持已经存在的DLL

这里找到一个成功加载的 这里先把原来程序正常的dll改名为libEGL1.dll,然后将我们自己的dll改名为libEGL.dll 然后再重新执行程序,这里同样是弹出了窗口

C++的string容器->基本概念、构造函数、赋值操作、字符串拼接、查找和替换、字符串比较、字符存取、插入和删除、子串

#include<iostream> using namespace std; #include <string> //string的构造函数 /* -string(); //创建一个空的字符串 例如: string str; -string(const char* s); //使用字符串s初始化 -string(const string& str); //使…

每日一学—由面试题“Redis 是否为单线程”引发的思考

文章目录 &#x1f4cb; 前言&#x1f330; 举个例子&#x1f3af; 什么是 Redis&#xff08;知识点补充&#xff09;&#x1f3af; Redis 中的多线程&#x1f3af; I/O 多线程&#x1f3af; Redis 中的多进程&#x1f4dd; 结论&#x1f3af;书籍推荐&#x1f525;参与方式 &a…

备战蓝桥杯—— 双指针技巧巧答链表1

对于单链表相关的问题&#xff0c;双指针技巧是一种非常广泛且有效的解决方法。以下是一些常见问题以及使用双指针技巧解决&#xff1a; 合并两个有序链表&#xff1a; 使用两个指针分别指向两个链表的头部&#xff0c;逐一比较节点的值&#xff0c;将较小的节点链接到结果链表…

C++的文件操作详解

目录 1.文本文件 1.写文件 2.读文件 2.二进制文件 1.写文件 2.读文件 1.文本文件 1.写文件 #include<bits/stdc.h> #include<fstream> using namespace std;int main() {ofstream ofs;ofs.open("text.txt",ios::out);ofs << "abc&qu…

H桥逆变控制方式(单极性倍频)

单极性倍频图像 内部做了载波取反&#xff1a;正相载波和负相载波 最后都和调制载波一起比较 正相载波&#xff1a;Q7导通为高电平&#xff0c;Q15导通为低电平 负相载波&#xff1a;Q16导通为高电平&#xff0c;Q8导通为低电平 导通次序为&#xff1a;Q7Q16——Q7Q8——Q7Q…