JavaScript从入门到精通

news/2025/3/14 16:58:48/

JavaScript从入门到精通

  • 一 Hello World
  • 二 Js编写位置
  • 三 Js基本语法
  • 四 常量和变量
  • 五 标识符
  • 六 数据类型
  • 七 强制类型转换

一 Hello World

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><!--Js代码需要编写到script标签中--><script>// 弹出窗口alert("Hello World!")// 向body体中输出内容document.write("Hello World!")// 向控制台输出内容console.log("Hello World!")</script>
</head>
<body></body>
</html>

二 Js编写位置

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><!--可以编写到外部js文件中,然后通过script标签引入可以在不同的页面引入script标签一旦用于引入,就不能再编写代码了,如果需要就重新创建一个新的script标签--><script src="script.js"></script><script><!--推荐写在script中-->alert("script标签中的js代码");</script>
</head>
<body>
<!-- 可以将js代码写在点击事件中,当点击按钮时,才会执行js代码 -->
<button onclick="alert('点击事件');">点击按钮</button>
<!--可以在超链接的href属性中写js代码,点击超链接会执行js代码-->
<a href="javascript:alert('a标签');">点我</a>
</body>
</html>

三 Js基本语法

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>/*  多行注释可以在源码中查看*/// 单行注释/** 1.Js中严格区分大小写* 2.Js中每一条语句以分号结尾(;)不写浏览器自动添加* 3.Js会会忽略多个空格和换行(python是以缩进区分层级)* */</script>
</head>
<body></body>
</html>

四 常量和变量

  • var 声明的范围是函数作用域,let 和 const 声明的范围是块作用域

  • var 声明的变量会被提升到函数作用域的顶部,let 和 const 声明的变量不存在提升,且具有暂时性死区特征

  • var 允许在同一个作用域中重复声明同一个变量,let 和 const 不允许

  • 在全局作用域中使用 var 声明的变量会成为 window 对象的属性,let 和 const 声明的变量则不会

  • const 的行为与 let 基本相同,唯一 一个重要的区别是,使用 const 声明的变量必须进行初始化,且不能被修改

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>// 声明变量let a;// 为变量赋值a = 123;a = 456;// 声明和赋值let b = 789;console.log(a);console.log(b)</script>
</head>
<body></body>
</html>

五 标识符

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>/** 变量名,函数名,属性名都属于标识符* - 需要遵守如下规则*   1.可以包含字母、数字、下划线、$*   2.不能以数字开头*   3.不能是Js中的关键字和保留字*   4.一般采用驼峰命名法(python建议下划线命名)首字母小写其余单词首字母大写其余小写* */let helloWorld = "Hello World!";</script>
</head>
<body></body>
</html>

六 数据类型

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>/** -六种数据类型*   1、String  字符串*   2、Number  数字*   3、Boolean  布尔*   4、Null  空值*   5.Undefined  未定义*   6、Object  对象(引用数据类型)* */let str = "Hello";console.log(str);// \表示转义符console.log("我说:\"明天星期五\"");let int = 123;let float = 1.1;// typeof 检查数据类型console.log(typeof int);console.log(typeof float);// Js可以表示数字的最大值 1.7976931348623157e+308console.log(Number.MAX_VALUE);// 5e-324console.log(Number.MIN_VALUE);// 0.30000000000000004 精度问题console.log(0.1 + 0.2);let isShow = true;console.log(typeof isShow);// 表示空对象let a = null;// 返回objectconsole.log(typeof a);let c;// 声明变量未赋值console.log(c);</script>
</head>
<body></body>
</html>

七 强制类型转换

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>// 将其他数据类型转换成Stringlet a = 123;a = a.toString();console.log(a);console.log(typeof a);let b = true;b=String(b);console.log(b);console.log(typeof b);// 其他数据转Numberlet c = "123";c = Number(c);console.log(c);console.log(typeof c);let d = "字符串";d = Number(d);// NaNconsole.log(d);console.log(typeof d);let e = true;e = Number(e);console.log(e);  // 1console.log(typeof e);let f = undefined;f = Number(f)console.log(f)  //NaNconsole.log(typeof f)let g = "100px";// 将字符串中有效数字取出来g = parseInt(g);console.log(g);console.log(typeof g);let h = "100.1px";h = parseFloat(h);console.log(h);console.log(typeof h);// 0x表示16进制数字let i = 0x10;console.log(i);// 0o 开头是8进制let j = 0o10;console.log(j);// 0b 二进制let k = 0b1;console.log(k);let l = "070";l = parseInt(l, 10); // 转成10进制console.log(l);// 转换成Booleanlet m = 1;m = Boolean(m);console.log(m)</script>
</head>
<body></body>
</html>

http://www.ppmy.cn/news/46985.html

相关文章

网络编程套接字(一)

学习任务&#xff1a; 我们先来认识端口号&#xff0c;区分好主机IP和端口号的区别&#xff0c;以及涉及到进程PID和端口号的区别。 然后简单认识一下TCP协议和UDP协议&#xff0c;这两个协议都是传输层的。接着了解什么是网络字节序&#xff0c;它有什么作用。然后是网络编程的…

javaweb838仓库进销存管理系统

此系统主要分4个模块&#xff0c;分别是&#xff1a; 出库管理模块&#xff1a;对每种出库出去的商品都有相应的记录显示。 入库管理模块&#xff1a;对每种入库来的商品都有相应的记录显示&#xff0c;如果商品管理局显示某一厂家的某一种商品不符合要求&#xff0c;则在入库的…

解决 “Function not implemented“, 为 arm64 架构宿主机重新构建 Nacos 镜像

文章目录 前言重新构建镜像的步骤附录FAQ: "cannot install the best candidate for the job" & "conflicting requests"Dockerfile 文件 前言 官方的 Nacos 镜像在 arm64 架构的系统上运行容器会出现 “Function not implemented” 的相关异常日志以…

Linux内存管理(三十三):vmalloc 详解

源码基于&#xff1a;Linux 5.4 0. 前言 kmalloc()、vmalloc()、malloc() 这三个函数是常用的内存分配函数&#xff0c;但有着本质的区别。 kmalloc() 基于slab 分配器&#xff0c;是建立在一个物理地址连续的大内存块上&#xff0c;所以 kmalloc() 分配的内存物理是上连续的…

c++引用

目录 C 引用的概念&#xff1a; c引用在工程中的好处&#xff1a; c引用的用法 c引用的场景&#xff1a; c引用的场景1&#xff1a;作为函数参数 c引用的场景2&#xff1a;作为函数返回值 引用的优点包括&#xff1a; 在 C 中使用引用时需要注意以下几点&#xff1a; C…

【JUC】volatile和JMM

【JUC】volatile和JMM 文章目录 【JUC】volatile和JMM1. volatile1.1 特点1.2 内存语义 2. 内存屏障2.1 分类2.2 什么叫保证有序性&#xff1f;2.3 内存屏障的4种插入策略 3. volatile特性3.1 保证可见性3.2 volatile读写过程3.3 没有原子性3.4 指令禁重排(有序性) 4. 正确使用…

【rustdesk 】rfc5128 :跨NATs的P2P通信技术 和rdserver

rfc5128rustdesk 的服务器是基于rfc5128 的 RendezvousServer // https://tools.ietf.org/rfc/rfc5128.txt // https://blog.csdn.net/bytxl/article/details/44344855use flexi_logger::*; use hbb_common::{bail, config::RENDEZVOUS_PORT, ResultType}; use hbbs

【vue】Vue 开发技巧:

文章目录 1.路由参数解耦2.功能组件3.样式范围4.watch的高级使用5.watch监听多个变量6.事件参数$event7.程序化事件监听器8.监听组件生命周期 1.路由参数解耦 通常在组件中使用路由参数&#xff0c;大多数人会做以下事情。 export default {methods: {getParamsId() {return …