首页 > 其他分享 >Js基础

Js基础

时间:2024-09-24 17:36:21浏览次数:1  
标签:变量 作用域 基础 Js let var 声明 字面

JS编写位置

将代码编写在html网页script标签
<script>
    // 弹出
    alert("test")
    // 控制台输出日志
    console.log("hello world")
    // 向网页输入内容,即往body中写内容
    document.write("write content")

</script>
将代码编写在外部的js文件中
<!-- js 文件路径 -->
<script src="./js/index.js"> </script>

如果script通过src引入了js文件,就不能在标签内部再编写js代码,如果有需求在下方新写一个script标签,在标签内部编写代码

将代码编写到指定属性中
<!-- 点击按钮的时候 触发js alert效果-->
<button onclick="alert('弹出')"></button>

<!-- 点击超链接的时候触发js效果 -->
<a href="javascript:alert('pop');"></a>


基本语法

单行注释

// 注释

多行注释

/*
	多行注释
*/

代码规范

JS严格区分大小写

JS中多个换行、空格会被忽略

JS中每条语句都应该以;分号结尾

JS中有自动添加分号的机制,如果不写分号,解释器会自动添加

字面量和变量

字面量就是一个值(例如1、true、"a"等具体的值),所代表的含义就是他的字面意思,在js中所有的字面量都可以直接使用

变量用来存储字面量,变量中存储的字面量可以随意修改,js使用let声明变量

声明变量
使用let关键字声明变量
// 声明变量,后续赋值
let x 
x = 100
// 声明变量直接复制
let y = 100
// 声明多个变量
let a,b,c
使用var关键字声明变量
var a
a = 1

var b = 10

var e,d,g 

let 和var的区别

let

块级作用域:使用let声明的变量具有块级作用域,即变量只在其所在的代码块(如if语句块、for循环块、while循环块等)内可见

let不存在变量提升。如果在声明之前访问let声明的变量,会抛出ReferenceError错误

在同一个块级作用域内,不能重复声明同一个变量,否则会抛出SyntaxError错误

var

函数作用域:使用var声明的变量具有函数作用域。这意味着在函数内部声明的变量在整个函数内都是可见的,并且在函数外部不可访问(除非通过一些特殊情况,如将函数内部的变量赋值给全局对象)

使用var声明的变量存在变量提升。这意味着变量可以在声明之前被访问,只不过在声明之前其值为undefined

在同一个作用域内,可以多次使用var声明同一个变量,后面的声明会覆盖前面的声明

为了避免变量提升带来的混乱,最好的做法是在使用变量之前先声明它们,并且遵循良好的代码规范,将所有的变量声明放在函数或代码块的顶部,建议使用 let,以避免由于变量提升而产生的意外行为

变量的内存结构

变量中不存储任何值,而是存储值的内存地址,通过内存地址找到对应的值

如果字面量已经存在于内存当中,声明多个同样的变量不会在内存创建多个值,如果有值,则直接使用,没有再进行创建

image-20240924170916047

常量

使用const声明常量,常量只能赋值一次,后续不能修改

常量声明之后,常量对应的内存地址,被锁死

除了常规的常量外,一些对象类型的数据,如果不希望被修改,也会声明为常量

const TEST = 10

标识符

所有可以由我们自主命名的内容,都可以认为是一个标识符,比如变量名、函数名、类名

使用标识符的命名规范:

只能包含字母、数字、下划线、$,不能以数字开头

不能是js中的关键字和保留字,也不建议使用内置的函数或者类名作为变量名

命名规范使用驼峰命名法

标签:变量,作用域,基础,Js,let,var,声明,字面
From: https://www.cnblogs.com/Mickey-7/p/18429657

相关文章

  • 调试vue build之后的js文件
    调试dist目录下的JavaScript文件可以按照以下步骤进行:1.确保SourceMaps正常生成确认你的构建配置中已启用SourceMaps,确保.map文件与构建后的.js文件位于同一目录。2.启动一个本地服务器使用本地服务器来服务dist目录,这样浏览器可以正确处理文件路径。例如......
  • 基于Node.js+vue基于Springboot恒生蔬菜库存管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着农业现代化进程的加速和消费者对食品新鲜度、安全性的日益重视,蔬菜库存管理成为了农产品供应链中至关重要的一环。传统的手工记录与管理方式已难以满足......
  • 基于Node.js+vue智能宠物监控系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着城市化进程的加速和人们生活质量的提升,宠物已成为许多家庭的重要成员。然而,现代生活节奏的加快使得许多宠物主人在日常照顾宠物时面临时间上的挑战。传......
  • 基于Node.js+vue基于java的学生宿舍管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着高等教育规模的不断扩大,学生宿舍作为校园生活的重要组成部分,其管理效率与服务质量直接关系到学生的日常生活体验及学校的整体管理水平。传统的学生宿舍......
  • Java面试指南(基础篇)
    文章目录前言01Java语言的特点02JVM、JRE及JDK的关系03Java和C++的区别04基本数据类型05类型转换06自动装箱与拆箱07String的不可变性08字符常量和字符串常量的区别09字符串常量池10String类的常用方法11String和StringBuffer、StringBuilder的区别12switch......
  • 零基础学Axios
    Axios官网:Axios官网 想用Axios前需要在项目中安装axios,安装方式如下:下列是axios请去方式,本文主要讲解post和get请求,其他请求和这两种请求方法相同。1get请求1.1不带请求参数前端后端 1.2带请求参数 前端写法一(推荐)写法二:但是这种写法在遇到特殊字符,需要......
  • Docker-Swarm介绍及基础使用
    Docker-Swarm参考:Swarmmode|Docker从入门到实践Docker1.12Swarmmode(opensnewwindow)已经内嵌入Docker引擎,成为了docker子命令dockerswarm。请注意与旧的DockerSwarm区分开来。Swarmmode内置kv存储功能,提供了众多的新特性,比如:具有容错能力的去中......
  • 【全新课程】正点原子《ESP32基础及项目实战入门》培训课程上线!
    正点原子《ESP32物联网项目实战》全新培训课程上线啦!正点原子工程师手把手教你学!熟练掌握ESP-IDF开发,突破ESP32入门难题!一、课程介绍本课程针对ESP32的入门和基础外设进行系统教学,内容包括环境搭建、编程软件使用、外设基础知识、模块驱动及多个实战项目。课程旨在帮助学员掌握E......
  • 利用vscode-icons-js在Vue3项目中实现文件图标展示
    背景:在开发文件管理系统或类似的项目时,我们常常需要根据文件类型展示对应的文件图标,这样可以提高用户体验。本文将介绍如何在Vue3项目中利用vscode-icons-js库,实现类似VSCode的文件图标展示效果。先看效果:一、引入vscode-icons-js首先,我们需要安装vscode-icons-js库。你可以使用n......
  • react-基础
    React基础React介绍目标任务:了解什么是React以及它的特点React是什么一个专注于构建用户界面的JavaScript库,和vue和angular并称前端三大框架,不夸张的说,react引领了很多新思想,世界范围内是最流行的js前端框架,最近发布了18版本,加入了很多新特性React英文文档(https://reactjs.or......