JavaScript初级——基础知识

一、JS的HelloWord

    1、JS的代码需要编写到script标签中

  2、JS的执行是根据语句从上到下一次执行的。

二、JS的编写位置

    1、可以将js代码编写到标签的onclick属性中,当我们点击按钮时,js代码才会执行。

   2、可以将js代码写在超链接的href属性中,这样当点击超链接时,会执行js代码。

   3、虽然可以写在标签的属性中,但是他们属于结构与行为耦合,不方便维护,不推荐使用。

   4、可以将js代码编写到script标签中。

   5、可以将js代码编写到外部的js文件中,然后通过script标签引入。

   6、写到外部文件中可以在不同的浏览器中同时引用,也可以利用到浏览器的缓存机制,推荐使用这种方式。

   7、script标签一旦用于引入外部文件了,就不能再编写代码了,即使编写了浏览器也会忽略。如果需要则可以再创建一个新的script标签用于编写内部代码。

三、基本语法

    1、JS中的注释:注释中的内容不会被执行,但是可以在源代码中查看,要养成良好的编写注释的习惯,也可以通过注释来对代码进行一些简单的调适。

          ①   /*     */      表示多行注释

          ②  //       表示单行注释

    2、JS中严格区分大小写。

    3、JS中每一条语句以分号   ;  结尾。

          ——如果不写分号,浏览器会自动添加,但是会消耗一些系统资源,而且有些时候,浏览器会加错分号,所以在开发中分号必须写。

    4、JS中会忽略多个空格和换行,所以我们可以利用空格和换行对代码进行格式化。

四、字面量和变量

    1、字面量:一些不可改变的值,比如1   2  3  4  5 ······

                       字面量都是可以直接使用的,但是我们一般不会直接使用字面量。

    2、变量:可以用来保存字面量,而且变量的值是可以任意改变的。更加方便我们使用,所以在开发中都是通过变量去保存一个字面量,而很少直接使用字面量。可以通过变量对字面量进行描述

    3、声明变量:在js中使用var关键字来声明一个变量。

                          声明和赋值也可以同时进行。

五、标识符

    1、在JS中所有的可以由我们自主命名的都可以称为是标识符,例如:变量名、函数名、属性名都属于标识符

    2、命名一个标识符时需要遵守如下规则:

         ① 标识符中可以含有字母、数字、_ $

         ② 标识符不能以数字开头。

         ③ 标识符不能是ES中的关键字和保留字。

         ④ 标识符一般都采用驼峰命名法

                                ——首字母小写,每个单词的开头字母大写,其余小写。【如:helloWorld  、  xxxYyyZzz】

    3、JS底层保存标识符时实际上是采用的Unicode编码,所以理论上讲,所有的utf-8中含有的内容都可以作为标识符(可以用中文但不建议)。

六、数据类型

    1、数据类型指的就是字面量的类型。

    2、在JS中一共有六种数据类型:

                                                     String     字符串

                                                     Number     数值

                                                     Boolean       布尔值

                                                     Null         空值

                                                     Undefined      未定义

                                                     Object        对象

          其中 String     Number     Boolean      Null       Undefined  属于基本数据类型,而 Object 属于引用数据类型。

    3、String    字符串

① 在JS中字符串需要使用引号引起来,使用双引号或者单引号都可以。

② 引号不能嵌套,双引号里面不能放双引号,单引号里面不能放单引号。正确使用如下:

③ 在字符串中我们可以使用 \ 作为转义字符,当表示一些特殊符号时可以使用 \ 进行转义。

         \"   表示 "

         \'   表示 '

         \n   表示换行

         \t    表示制表符,相当于一个Tab

         \\    表示 \

④   alert(“str”);       表示输出字面量  字符串str

      alert(str);       表示输出变量str

    4、Number   数值

① 在JS中左右的数值都是Number类型,包括整数和浮点数(小数)。

② var a = 123;    表示数字123

     var a = “123”;   表示字符串123

③ 可以使用一个运算符 typeof 来检查一个变量的类型。

     语法:  typeof  变量

     检查字符串时会返回 string; 检查数值时会返回 number 。

④ JS中可以表示的数字的最大值—— Number.MAX_VALUE      【表示数值为:1.7976931348623157e+308】

⑤ 如果使用 Number 表示的数字超过了最大值,则会返回一个 Infinity  表示正无穷;同理,-Infinity表示负无穷。使用typeof检查Infinity也会返回Number。

NaN是一个特殊的数字,表示 Not A Number(非数值);使用typeof检查NaN也会返回Number。

Number.MIN_VALUE        大于0的最小值     【表示数值为:5e-324】

⑧ 在JS中整数的运算基本可以保证精确,如果使用JS 进行浮点数运算,可能得到一个不精确的结果,所以千万不要使用JS进行对精确度要求比较高的运算。

    5、Boolean  布尔值

① 布尔值只有两个【true   表示真; false  表示假】,主要用来做逻辑判断。

② 使用 typeof 检查一个布尔值时,会返回 boolean 。

    6、Null   空值

① Null类型的值只有一个,就是null

② null这个值专门用来表示一个为空的对象。

③ 使用 typeof 检查一个null值时,会返回 object 。

    7、Undifined  未定义

① Undifined类型的值只有一个,就是undefind

② 当声明一个变量时,但是并不给变量赋值时,它的值就是undefined。

③ 使用 typeof 检查一个 undefined 时也会返回 undefined 。

七、强制类型转换

    1、指将一个数据类型强制转换为其他的数据类型。

    2、类型转换主要指,将其他的数据类型转换为  String   、  Number  、 Boolean   。

    3、将其他的数据类型转换为String

  • 方式一:

① 调用被转换数据类型的 toString() 方法。          【调用xxx的yyy()方法就是 xxx.yyy()】

② 该方法不会影响到原变量,它会将转换的结果返回。

③ 但是要注意: null undefined 这两个值没有 toString ()方法;如果调用他们的方法会报错。

  • 方式二:

① 调用 String() 函数,并将被转换的数据作为参数传递给函数。

② 使用 String() 函数做强制类型转换时,对于 Number 和 Boolean 实际上就是调用的 toString()方法;但是对于 null 和 undefined ,就不会调用 toString()方法,它会 null 【字面量】直接转换为 null”【字符串】,将 undefined 【字面量】直接转换为“undefined”【字符串】。

    4、强制转换为Number

  • 方式一:

            使用 Number() 函数。

① 字符串转换为数字 —— 如果是纯数字的字符串,则直接将其转换为数字;

                                —— 如果字符串中有非数字的内容,则转换为NaN;

                                —— 如果字符串是一个空串或者是一个全是空格的字符串,则转换为0。

② 布尔值转换为数字 —— true 转换为1

                                —— false  转换为0

③ Null 转换为数字 0

④ undefined  转换为数字 NaN

⑤ 调用 parseInt()函数将含有数字和非数字的数字部分转换为Number

  • 方式二:

① 这种方式专门用来对付字符串

parseInt()       把一个字符串转换为一个整数,可以将一个字符串中的有效的整数内容取出来,然后转换为Number。

     parseFloat()   把一个字符串转换为一个浮点数。作用和 parseInt()类似,不同的是它可以获得有效的小数。

③ 如果对非 String 使用 parseInt() 或 parseFloat(),它会先将其转换为 String 然后再操作。

    5、强制转换为Boolean

  • 方式一:

① 使用 Boolean() 函数

② 数字转换为布尔值:除了 0 NaN ,其余都是true

③ 字符串转换为布尔值:除了空串,其余都是true。

null undefined 都会转换为false

对象也会转换为 true

  • 方式二:

                        隐式类型转换:为任意的数据类型做两次非运算,即可将其转换为布尔值

八、其他进制的数字

    1、在js中,如果需要表示16进制的数字,则需要以 0x 开头。

    2、如果表示8进制的数字,需要以 0 开头。

    3、如果表示2进制的数字,需要以0b开头,但不是所有的浏览器都支持。

    4、像“070”这种字符串,有些浏览器会当成8进制,有些会当成10进制进行解析,可以再parseInt()中传递一个第二个参数,来指定数字的进制。

本文的分享就到这里,下一节继续分享关于JavaScript初级知识的学习。

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

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

相关文章

HDFS的透明加密

一、HDFS透明加密原理 Hadoop的透明加密(HDFS Transparent Data Encryption) - TDE 1.HDFS中的数据明文存储 HDFS中的数据会以block的形式保存在各台数据节点的本地磁盘中,但这些block都是明文的。 通过Web UI页面找到Block的ID和副本位于的机器信息 如果在操作系统中直接访…

csrf漏洞(二)

本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言: 本文依靠phpstudy以及dvwa靶场进行操作,具体搭建流程参考:xss漏洞(二,xss靶场搭建以及简单利用) 前篇…

docker 部署 遇到的一些问题

1. nacos 部署问题 1.1 问题 springboot 服务器启动失败 AnnotationNacosPropertySourceBuilder - There is no content for NacosPropertySource from dataId[rsa.yaml] , groupId[DEFAULT_GROUP] , properties[{accessKey${nacos.access-key:}, clusterName${nacos.cluster…

leetcode387. 字符串中的第一个唯一字符,哈希表

leetcode387. 字符串中的第一个唯一字符 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。 示例 1: 输入: s “leetcode” 输出: 0 示例 2: 输入: s “loveleetcode” 输出: 2 示例…

Xilinx FPGA:vivado关于以太网的零碎知识点

一、OSI七层模型 为了实现网络通信的标准化,普及网络应用,国际标准化组织(ISO)将整个以太网通信结构制定了OSI模型,即开放式系统互联。 OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、…

【leetcode】回文链表-25-3

方法:快慢指针递归遍历 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) …

宝塔面板部署webman项目+nginx反向代理

新建站点 新建一个站点,php版本选择纯净态即可,反正都是用不上的,域名填写你申请得到的域名 拉取代码 新建一个目录,然后将代码部署到本地 启动项目 推荐使用宝塔面板的进程守护管理器启动项目,其实就是用superviso…

快速体验fastllm安装部署并支持AMD ROCm推理加速

序言 fastllm是纯c实现,无第三方依赖的高性能大模型推理库。 本文以国产海光DCU为例,在AMD ROCm平台下编译部署fastllm以实现LLMs模型推理加速。 测试平台:曙光超算互联网平台SCNet GPU/DCU:异构加速卡AI 显存64GB PCIE&#…

[机器学习]全景指南:从基础概念到实战流程的全面解析

文章目录 1.引言1.1机器学习的重要性1.2机器学习的应用范围1.3本文的内容结构 2. 机器学习的基本概念与分类2.1 机器学习的定义2.2 机器学习的分类 4. 强化学习(Reinforcement Learning) 3. 机器学习的工作流程3.1 数据收集与准备1. 数据源与类型2. 数据…

Android进阶之路 - res、raw、assets 资源解析、区别对比

那天遇到一个资源目录层级的问题,索性重新整理记录一下,希望能帮到如吾往昔之少年的你们,哈哈哈哈哈哈… 一脸茫然,越写越多,时间成本属实有点大,就当一起来基础扫盲吧 resdrawablemipmapvaluescolor asset…

Redis未授权访问漏洞利用合集

一、基本信息 靶机:IP:192.168.100.40 攻击机:IP:192.168.100.60 二、漏洞 & 过程 Redis 未授权访问漏洞利用无口令远程登录靶机 靶机 cd redis-4.0.8/src./redis-server ../redis.conf 攻击机 ./redis-cli -h 192.168.100.40 Redis 未授权访问…

nginx安全控制

nginx的安全控制 参考文档:https://docs.nginx.com/nginx/admin-guide/security-controls/controlling-access-proxied-http/ 1. nginx作为web服务器 # nginx作为web服务器,配置虚拟主机 server {listen 80; server_name www.sxl1.com; # 域名…

synchronized轻量级锁原理和实战(四)

引入轻量级锁的目的 多线程竞争不激烈的情况下,通过CAS机制竞争减少重量级锁产生的性能消耗.重量级锁使用了操作系统底层的互斥锁,会导致线程在用户态和核心态之间切换.带来性能上的损耗. 轻量级锁的核心原理 轻量级锁存在的目的本身就是为了减少线程从内核态和用户态的切换…

笔试必备—Java输入输出流

Java 流 流可以理解为一个数据,输入流表示从一个源读取数据,输出流表示向一个目标写数据 Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中 Scanner类 提供了一系列的方法,更加直观、易用性高&…

【数学建模】趣味数模问题——四人追逐问题

问题描述: 如图所示,在正方形ABCD的四个顶点各有一个人。在初始时刻 t0 时,四人同时出发,以匀速 v 沿顺时针方向朝下一个人移动。如果他们始终对准下一个人为目标行进,最终结果会如何?需要作出各自的运动轨…

微信小程序 ==== 半屏打开小程序

目录 打开半屏小程序 调用流程 打开半屏小程序 半屏小程序环境判断 返回原小程序 使用限制 wx.openEmbeddedMiniProgram 功能描述 参数 wx.navigateBackMiniProgram 功能描述 示例代码 Object wx.getEnterOptionsSync() 功能描述 返回值 返回有效 referrerInfo…

计算机毕业设计 医院问诊系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

Spring Boot集成Devtools实现热更新?

1.什么Devtools? DevTools是开发者工具集,主要用于简化开发过程中的热部署问题。 热部署是指在开发过程中,当代码发生变化时,无需手动重启应用,系统能够自动检测并重新加载修改后的代码,大大提高了开发效率…

UE基础 —— 关卡

目录 Working with Levels Managing Multiple Levels World Settings 更改默认关卡 关卡(Level)是游戏的"世界"的全部或部分;关卡包含玩家可以看到并与之交互的所有内容,如环境、可用对象、其他角色,等等…

理性看待、正确理解 AI 中的 Scaling “laws”

编者按:LLMs 规模和性能的不断提升,让人们不禁产生疑问:这种趋势是否能一直持续下去?我们是否能通过不断扩大模型规模最终实现通用人工智能(AGI)?回答这些问题对于理解 AI 的未来发展轨迹至关重…