JavaScript基础和数据类型

【一】JavaScipt基础

【1】什么是JavaScript

(1)定义

  • JavaScript最初由Netscape公司(现在的Mozilla基金会)的Brendan Eich在1995年创造。

  • JavaScript是一种广泛用于网页开发脚本语言

  • 它是一种动态、解释性的语言,可以在网页上实现复杂的交互和动态效果。

  • JavaScript通常用于前端开发,用于改变网页的内容、样式和行为,以及与用户进行交互。

(2)特点

  • 它是一种解释性的语言,不需要编译,可以直接在网页上运行。
  • 它是一种动态类型语言,变量的类型可以在运行时改变。
  • 它支持面向对象编程(OOP)和函数式编程(FP)的范式。
  • 它具有丰富的内置对象和方法,可以用于处理字符串、数组、日期、正则表达式等。
  • 它可以与HTML和CSS无缝集成,通过DOM(文档对象模型)和CSSOM(CSS对象模型)操作网页元素和样式。
  • 它具有广泛的第三方库和框架,如React、Angular和Vue.js,可以简化开发过程并提供更丰富的功能。
  • 注意:在JavaScript中,分号(;)用于表示语句的结束

【2】注释语法

  • 在JavaScript中,注释是用于在代码中添加说明和备注的文本,它们不会被执行或解释为代码的一部分。
  • 注释对于代码的可读性和维护性非常重要,可以帮助其他开发人员理解代码的意图和功能。

(1)单行注释

// 注释内容

(2)多行注释

/*
注释内容
*/

【3】调试工具

(1)alert

  • alert 是一个弹出窗口,用于显示一条消息给用户
  • 它可以用于调试目的,将特定的值或消息显示给用户
  • alert 方法会阻塞代码的执行,直到用户关闭弹出窗口为止。
alert('Surprise!')

(2)prompt

  • prompt 是一个弹出窗口,用于接收用户的输入,并将输入的值作为返回值返回给代码
  • 用于调试,以便在代码中获取用户的输入值。
var name = prompt("username:>>>");

(3)console

  • console 是一个用于在浏览器控制台输出调试信息的对象。
  • 它提供了一组方法,如 logwarnerror 等,用于输出不同级别的调试信息。
console.log(123)

【3】引入方式

(1)写在script标签里面

  • body内书写:行内书写、body最下面
  • head内书写
<!DOCTYPE html>
<html>
<head>
<script><!-- js代码  -->
</script>
</head>
<body><div onclick="(alert('Surprise!'))">click me !</div><script><!-- js代码  -->
</script>    
</body>   
</html>

(2)写在Js文件里面

  • 在script标签中指定js文件路径
<!DOCTYPE html>
<html>
<head><script src='javascript.js'></script>
</head>
<body>
</body>
</html>

【二】基本数据类型

【1】字面量

  • 字面量是直接表示数据的固定值。
  • 它们是在代码中直接使用的值不需要通过变量常量进行存储。
  • JavaScript中常见的字面量包括数字字面量、字符串字面量、布尔字面量、数组字面量和对象字面量等。
3.14
’hello‘
true

【2】变量和常量

(1)变量

  • 变量是用于存储和引用数据的标识符。
  • 建议命名为小写字母开头的驼峰体
  • 在JavaScript中,可以使用 varlet 声明变量。
var x = 5;
let y = "Hello"; 
1.1var和let的区别
  • 作用域var 是函数级作用域, let 是块级作用域

  • var 在循环内定义也会影响到全局和python一样

  • let 在局部定义只会在局部生效,6.0版本以上可以用

var i = 10;
for (var i=0; i<4; i++){}
console.log(i)
# 4
let i = 10;
for (let i=0; i<4; i++){}
console.log(i)
# 10
  • 提升var 声明的变量会被提升到其作用域的顶部。这意味着你可以在声明变量之前使用变量,而变量的值将是 undefinedlet 声明的变量也会被提升,但是你不能在声明之前使用它们,否则会抛出 ReferenceError。这个区间被称为“暂时性死区”。
console.log(x);  //undefined
var x = 5;console.log(y);  //ReferenceError
let y = 5;
  • 重声明:在同一个作用域中,var 允许你重新声明同一个变量,而 let 不允许。

    var x = 1;
    var x = 2;  //可以let y = 1;
    let y = 2;  //SyntaxError
    

(2)常量

  • 常量是指在程序执行期间不可更改的值。

  • 在JavaScript中,可以使用 const 关键字声明常量。常量一旦被赋值后,其值就不能再被修改

  • python并没有真正意义上的常量

    const PI = 3.14
    undefined
    PI = 3.145
    Uncaught TypeError: Assignment to constant variable.at <anonymous>:1:4
    

【3】数值类型

  • 数值类型是一种原始数据类型,用于存储数值,可以进行数学运算和比较操作。

(1)定义数据

var age = 18;		//整数
var pi = 3.14;		//小数
var salary = 2e5;  //200000
var a = -0.5;		//负数
var biggest = Infinity;		//无穷大
var smallest = -Infinity;	//无穷小
var b = NaN;		//Not a number 非数值类型 

(2)查看数据类型typeof

typeof a;
// 'number'
typeof biggest;
// 'number'
typeof b;
// 'number'

(3)类型转换

  • parseInt:转换为整数
  • parseFloat:转换为浮点数
    • 字符串可以转换为数字
    • 开头是数字就能转换前面的数字
    • 无法转换就是NaN
console.log(parseInt(11.99)); //11
console.log(parseInt("11.99"));	//11
console.log(parseFloat("11.99"));	//11.99
console.log(parseInt("123aa"));	//123
console.log(parseInt("aa"));	//NaN

【4】字符串类型

(1)定义并查看类型

var name = 'bruce';
var hobby = "running";
typeof name;	//'string'
typeof hobby;	//'string'

(2)模板字符串(这是反引号`)

var introduce = `name: ${name} hobby: ${hobby}`;
console.log(introduce);	//name: bruce hobby: running

(3)常用方法

3.1拼接字符串
  • +号
  • .concate()
var a = "123";
var b = "456";
var c = a + b;	//'123456'
c.concat(a, b) //'123456123456' 没接收所以c实际不变
3.2字符串长度
  • .length
c.length; //6
3.3移除空白
  • .trim():移除两端空白
  • .trimLeft():移除左端空白
  • .trimRight():移除右端空白
  • python可以指定字符,trim不行
var name = '  bruce   ';
name.trim();	//'bruce'
name.trimLeft();	//'bruce   '
name.trimRight();	//'  bruce'
var hobby = '$swimming';
hobby.trim("$");	//'$swimming'
3.4索引
  • .charAt(n):返回索引为n的值
  • .indexOf(“str”):返回字符串所在的索引位置
var introduce = "hello my name is bruce";
introduce.charAt(4);	//'0'
introduce.CharAt(100);	//''introduce.indexOf('name');	//9
3.5切片
  • .slice(m, n):[m, n)
  • .substring(m, n):[m, n),不支持负数
var introduce = "my name is bruce";
introduce.slice(3, 7);	//'name'
introduce.slice(0, -1);	//'my name is bruc'
introduce.substring(0, -1); //''
3.6大小写转换
  • .toLowerCase()
  • .toUpperCase()
var name = "Bruce";
name.toLowerCase();	//'bruce'
name.toUpperCase(); //'BRUCE'
3.7切分
  • .split(‘str’)
  • .split(‘str’, n) 和Python运行结果不同,只保留前n个
var hobby = 'run|eat|play|swim|see';
hobby.split("|");
//(5) ['run', 'eat', 'play', 'swim', 'see']
hobby.split("|", 2);
//(2) ['run', 'eat']
# python中
hobby = 'run|eat|play|swim|see'
print(hobby.split("|", 2))
# ['run', 'eat', 'play|swim|see']
3.8类型转换
  • 通过+号
  • String
  • .toString():数组可以,单独的数字不行
typeof(2 + "");	//'string'
typeof(String(2)); 	//'string'
typeof([2].toString()); 	//'string'

【5】布尔类型

(1)定义并查看类型

  • 注意:需要全小写
var flag = true;
var indetify = false;
typeof flag;	//'boolean'

(2)分类

2.1为假
  • 空字符串

  • 0

  • null

  • undefined

  • NaN

2.2为真
  • 其他为真

(3)类型转换

  • Boolean()
Boolean(null);	//false
Boolean(NaN);	//false

【6】null和undefined

(1)undefined

  • 当一个变量声明但未赋值时,或者访问对象属性或数组元素时不存在时,该值被视为undefined
  • 它表示一个未定义或缺少值的状态
var name;
console.log(name); //undefined
var arr = [1, 2, 3];
console.log(arr[3]); //undefined

(2)null

  • 表示一个空值不存在的对象
  • 一般都是指定或者清空一个变量时使用
var y = null;
console.log(y); //null

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

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

相关文章

什么是智能指针?请列举几种智能指针的类型,并说明其区别。

什么是智能指针&#xff1f;请列举几种智能指针的类型&#xff0c;并说明其区别。 智能指针是一种 C 标准库提供的高级指针类&#xff0c;它能够自动管理动态分配的内存资源&#xff0c;并在适当的时候释放该资源&#xff0c;从而避免内存泄漏和野指针等常见问题。智能指针的主…

Mysql中like %xxx% 模糊查询该如何优化

背景&#xff1a; 实际项目中&#xff0c;like %xxx%的情况其实挺多的&#xff0c;比如某个表单如果支持根据公司名进行搜索&#xff0c;用户一般都是输入湖南xxx有限公司中的xxx进行搜索&#xff0c;所以对于接口而言&#xff0c;就必须使用like %xxx%来支持&#xff0c;从而…

C#,入门教程(05)——Visual Studio 2022源程序(源代码)自动排版的功能动画图示

上一篇&#xff1a; C#&#xff0c;入门教程(04)——Visual Studio 2022 数据编程实例&#xff1a;随机数与组合https://blog.csdn.net/beijinghorn/article/details/123533838 新来的徒弟们交上来的C#代码&#xff0c;可读性往往很差。 今天一问才知道&#xff0c;他们居然不…

MIT6.S081学习——二、相关命令行整理

MIT6.S081学习——二、相关命令行整理 1 添加user代码到xv6中并编译2 git版本管理 1 添加user代码到xv6中并编译 问题&#xff1a;如何让在xv6中运行copy.c 答&#xff1a;在xv6中运行copy.c文件&#xff0c;你需要先将该文件添加到xv6源代码目录中&#xff0c;然后修改Makefil…

笔试题讲解(C语言进阶)

目录 前言 1、题目 2、答案 3、解析 结语 前言 “纸上得来终觉浅&#xff0c;绝知此事要躬行”。本篇通过对指针实际案例的分析&#xff0c;由浅入深&#xff0c;来加强我们对指针的理解。 1、题目 这是一道难题&#xff0c;小心哦。 #include <stdio.h> int main(…

值类型:左值、纯右值、将亡值

值类型是一个古老的概念&#xff0c;早在C98就存在了&#xff0c;但在C11之前这些都无关紧要&#xff0c;随着C11右值引用的产生值类型也被赋予了新的含义。 但问题是C11并未给出清晰的定义&#xff0c;比如在C11的标准文档中&#xff0c;左值的概念只有一句话&#xff1a;“指…

使用向量数据库pinecone构建应用02:检索增强生成RAG

Building Applications with Vector Databases 下面是这门课的学习笔记&#xff1a;https://www.deeplearning.ai/short-courses/building-applications-vector-databases/ Learn to create six exciting applications of vector databases and implement them using Pinecon…

Vue单文件学习项目综合案例Demo,黑马vue教程

文章目录 前言一、小黑记事本二、购物车三、小黑记账清单 前言 bilibili视频地址 一、小黑记事本 效果图 主代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"/><meta http-equiv"X-UA-Compatible&…

Open CASCADE学习|绘制砂轮

今天绘制一个砂轮&#xff0c;其轮廓由两条直线段和两段圆弧构成&#xff0c;圆弧分别与直线相切&#xff0c;两条圆弧之间相交而非相切。建模思路是&#xff1a;先给定两条直线段的起始点及长度&#xff0c;画出直线段&#xff0c;然后给定其中一圆弧的半径及圆心角&#xff0…

4核8G服务器能承受多少并发?

腾讯云4核8G服务器能承受多少并发&#xff1f;阿腾云的4核8G服务器可以支持20个访客同时访问&#xff0c;关于4核8G服务器承载量并发数qps计算测评&#xff0c;云服务器上运行程序效率不同支持人数在线人数不同&#xff0c;公网带宽也是影响4核8G服务器并发数的一大因素&#x…

Python世界之开端

目录 一、基础语法 1.交互式编程 2.脚本式编程 3.标识符 4.同一行显示多条语句 5.保留字符 6.行和缩进 7.错误提醒 8.多行语句 9.引号 10.注释 11.空行 12.print 输出 13.代码组 二、变量类型 1.标准数据类型 2.数字 3.字符串 1.字符串运算符 2.转义字符 …

Nginx网络服务

一、Nginx概述 1.1Nginx介绍 Nginx&#xff1a; 一款高新能、轻量级Web服务软件稳定性高系统资源消耗低对HTTP并发连接的处理能力高单台物理服务器可支持30 000&#xff5e;50 000个并发请求。 Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器&#xff0c;而且支持热部…

【LeetCode: 889. 根据前序和后序遍历构造二叉树 + DFS】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【Linux】用户与用户组,用户账号系统文件

目录 一 用户与用户组 1.1 含义 1.2 用户相关语法 1.2.1 useradd&#xff08;添加用户账号&#xff09; 1.2.2 userdel&#xff08;删除用户账号&#xff09; 1.2.3 usermod&#xff08;修改用户账号&#xff09; 1.2.4 passwd(用户口令的管理&#xff09; 1.2.5 su&am…

Git面试题整理(对比)

1.拉取请求pull和分支branch有什么区别 拉取请求(Pull Request) 定义:拉取请求是在代码协作平台上发起的一种通知&#xff0c;它告诉其他团队成员:“我完成了一段代码的工作&#xff0c;请审查并合并到主分支中去”。它不仅是请求合并代码的方式&#xff0c;也是代码审查、讨论…

使用Lombok @Data 出现java: 找不到符号 的问题

第一种&#xff1a;pom依赖最好如下方式 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>RELEASE</version><scope>compile</scope> </dependency>第二种&#xff1…

【Azure 架构师学习笔记】- Azure Databricks (10) -- UC 使用

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (9) – UC权限 在前面的文章&#xff1a;【Azure 架构师学习笔记】- Azure Databricks (6) - 配置Unity Catalog中演示了如何配置一个UC。 本文…

excel数据导入到数据库的方法

背景&#xff1a;最近在做和HW对接的某项目&#xff0c;需要将第三方接口提供的数据进行展示&#xff1b;在对方提供了详细的excel后&#xff0c;觉得也挺简单的就是将excel数据导入到数据库中。 方案一&#xff1a; 普通的初学者肯定会想&#xff0c;那我读取excel数据&…

人工智能的理解

人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是一种模拟人类智能思维过程的计算机系统。它通过模仿、学习和应用人类的思维方式和行为模式来完成各种任务&#xff0c;包括但不限于感知、推理、学习、规划、决策等。人工智能的发展已经取得了巨大的进…

UE5 骨骼重定向

1.通过 VRoidStudio 1.26.0 软件创建模型 导出 2.下载ue插件 https://github.com/ruyo/VRM4U/releases 安装 重启 3.拖入创建的模型 到指定文件夹 4.为模型创建 IK绑定&#xff0c;重定向骨骼根 新增链条 5.创建IK 重定向&#xff0c;指定源 和 目标 IK绑定 6.