JavaScript简介

JavaScript是一种解释型脚本语言,常用于网页特效、服务端开发等。它由ECMAScript、DOM和BOM三部分组成,提供了变量、注释、数据类型等基本语法。变量可以存储boolean、number、string等类型,数据类型中的number处理需注意精度问题。JavaScript的注释分为单行和多行,数据类型转换常用Number()、parseInt()和parseFloat()函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript简介

JavaScript是一种解释型脚本语言,目的是能够在客户端的网页中增加动态效果交互能力,实现了用户与网页之间的一种实时的、动态的交互关系。
它最初是由网景公司设计的,起名为LiveScript,后来Java语言非常红火,网景公司希望借助Java的名气来推广,改名为JavaScript,但是除了语法有点相似,在其他部分基本上没什么关系。
后来,JavaScript被Netscape公司交给ECMA制定标准,成为ECMAScript,最新版ECMAScript6(简称ES6)已经在2015年6月正式发布了。

JS组成

  • JS组成:ECMAScript(JS的核心)、DOM(文档对象模型)、BOM(浏览器对象模型)
  • + ECMAScript:主要定义了JS的语法
  • + DOM:一套操作页面元素的API,DOM可以把HTML看做是文档树,通过DOM提供的API可以对树上的节点进行操作
  • + BOM:一套操作浏览器功能的API,通过BOM可以操作浏览器窗口

JS用途

主要用于网页特效、服务端开发、命令行工具、桌面程序、APP、控制硬件—物联网、游戏开发

JavaScript书写位置

  • 写在行内
<input type="button" value="按钮" onclick="alert('Hello World')" />
  • 写在script标签中
<script>
alert('Hello,world!');
</script>

<script>...</script>包含的代码就是JavaScript代码,他将直接被浏览器执行。

  • 写入外部js文件中,在页面引入
<script type="text/javascript" src="/js/Hello.js"></script>

把代码放在单独的文件中更有利于维护代码,并且多个页面可以各自引用同一个.js文件。

基本语法

JavaScript语法和Java相似,每个语句以**;结束,语句块用{···}**。
注意:JavaScript严格区分大小写

变量

变量的概念: 一个变量就是分配了一个值的参数。使用变量可以方便的获取或者修改内存中的数据
变量的声明: 在声明变量时使用关键字var,要注意关键字与变量名之间的空格,也可以在一行中声明多个变量,以逗号分隔变量。

注意: 变量名必须是一个JavaScript标识符,应遵循以下标准命名规则:

  • 第一个字符必须是字母、下划线(_)或者美元符($)
  • 后面可以跟字母、下划线、美元符、数字,但不能是其他符号
  • 在被申明的范围内,变量的名称必须是唯一的
  • 不能使用保留关键字作为标识符

变量的赋值: 在JavaScript中,使用=对变量进行赋值。可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同的数据类型的变量,但是只能用var申明一次。要显示变量,可以用console.log(x),打开Chrome的控制台就可以看到结果。

注释

以**//开头直到行末的字符被视为注释,注释是给开发人员看的,JavaScript引擎会自动忽略。
另一种块注释是用
/*···*/**把多行字符包裹起来,视为注释。

数据类型

JSd的数据类型分为两大类:

  • 简单数据类型(基本数据类型):boolean、number、string、null、undefined(、symbol)
  • 复杂数据类型:object
number

JavaScript不区分整数和浮点数,统一用number表示

number存在精度问题,所以最好不要判断浮点数是否相等

数值判断

NaN:Not a Number 不是一个number
NaN==NaN ==>false
isNaN():判断是否是number类型

isNaN(NaN) ===> true
isNaN(10) ===> false
isNaN("10") ===> false   //将字符串隐性的转换为number类型
isNaN(false) ===> false   //将boolean转为number类型
数值转换

数值转换有多种方法:

  • Number():
    转换规则:
    boolean => 1 或 0
    number => 直接返回
    undefined => NaN
    null => 0
    string => 字符串只包含数字–>十进制数值
    字符串包含有效浮点格式–>对应浮点数值
    字符串包含十六进制–>十进制
    其他格式–>NaN
    object =>调用valueOf(),然后依照前面规则转换。如果结果为NaN,调用对象的toString(),然后依照前面的规则转换
  • parseInt() 当第一个字符不是数字字符或负号,结果为NaN 当是0x开头所组成的字符串,符合要求可看作十六进制数,然后进行转换,结果为十进制 当要转换的是boolean类型时,结果为 NaN
  • parseFloat() 十六进制的字符串始终会转为0 无法转换boolean类型的数据,结果都为NaN 字符串包含的是一个可解析的整数,parseFloat()会返回整数 没有第二个参数
  • 取正或取负 当我们对数据进行取正或取负时,会隐性的进行数值转换
  • -0 进行-0操作时,也会隐性的进行数值转换
string

用于表示由零个或多个16位Unicode字符组成的字符序列,即字符串。字符串是以单引号'或双引号"括起来的任意文本,比如abc、xyz等等。单引号和双引号只是一种表示方式,不是字符串的一部分,所以,字符串abc中只有a、b、c这3个字符。
特点: 不可变的
当重新为一个字符串赋值时,实际上是重新开辟内存空间,例如:

var lang="Java";
lang=lang+"Script";
boolean

布尔值和布尔代数的表示完全一样,一个布尔值只有truefalse两种值,区分大小写。可以直接用truefalse表示布尔值,也可以通过布尔运算算出来:

true;//这是一个true值
false;//这是一个false值
2>1;//这是一个true值
2>=3;//这是一个false值
转为boolean值

Boolean()将一个值转换为其对应的boolean值
转为false的值:

  • null
  • undefined
  • “”
  • NaN
  • 0

布尔值经常用在条件判断句中

null和undefined

null表示一个“空”的值,他和0以及空字符串’‘不同,0是一个数值,’'表示长度为0的字符串,而nul表示空。
undefined表示“未定义”。

object

一组数据和功能的集合。可以通过执行new操作符后跟要创建的对象类型的名称来创建,而创建Object类型的实例并为其添加属性或方法。

一元操作符

一元操作符只有一个操作数

1.递增(++)和递减(–)操作符
可用于字符串、布尔值、浮点数、整数和对象,操作数自加1或自减1
分为:前置型、后置型

  • 前置型
    在语句中,前置型先进行自加或自减,再执行操作
var age=29;
++age;     //30
--age;     //29
  • 后置型
    在语句中,先进行操作,再进行自加或自减
var age=29;
age++;     //30
age--;     //29

单独看不能发现两者的区别,看以下例子,能够明显的看出前置与后置的区别:

var age1=29;
var anotherAge1= --age + 2;     //30

var age2=29;
var anotherAge2= age-- + 2;    //31

递增和递减操作遵循规则:
应用于包含有效数字字符的字符串时,先将其转换为数字值,再执行加减1的操作
应用于不包含有效数字字符的字符串时,将变量的值设置为NaN
应用于boolean值时,先将其转换为数值,在执行操作
应用于浮点数时,直接执行操作
应用于对象时,先调用valueOf(),如果结果正确,直接执行操作;如果结果为NaN,调用toString()在执行操作

2.一元加减操作
一元加(+)、减(-)操作符:

  1. 当将一元加操作符放在数值前,对数值不会产生任何影响;在对非数值应用一元加操作符时,该操作符会像Number()转型函数一样对这个值进行转换
  2. 一元减操作符主要用于表示负数,一元减操作符的转换规则和一元加操作符一样
布尔操作符(逻辑运算符)
  • &&运算是与运算,只有所有都为true,&&运算结果才是true;
    true && true => true
    true && false => false
    false && true => false
    false && false => false
    逻辑与操作可以应用于任何类型的操作数,而不仅仅是布尔值,在有一个操作数不是布尔值的情况下,逻辑与操作不一定返回布尔值:
    1.如果第一个操作数是对象,则返回第二个操作数
    2.如果第二个操作数是对象,则只有在第一个操作数的求值结果为true的情况下才返回该对象
    3.如果两个操作数都是对象,则返回第二个操作数
    4.如果第一个操作数是null,则返回null
    5.如果第一个操作数是NaN,则返回NaN
    6.如果第一个操作数是undefined,则返回undefined
    逻辑与是短路操作,即如果第一个操作数能够决定结果,那么就不会对第二个操作数求值。逻辑与操作中,当第一个操作数是false时,则无论第二个操作数是什么值,结果都是false
  • ||运算是或运算,只要其中有一个true,||运算结果都为true;
    与逻辑与相似,如果有一个操作数不是布尔值,则结果不一定是布尔值:
    1.如果第一个操作数是对象,则返回第一个操作数
    2.如果第一个操作数的求值结果为false,则返回第二个操作数
    3.如果两个操作数都是对象,则返回第一个操作数
    4.如果两个操作数都是null,则返回null
    5.如果两个操作数都是NaN,则返回NaN
    6.如果两个操作数都是undefined,则返回undefined
  • !运算是非运算,他是一个单目运算符,把true变成false,把false变为true;
    将他的操作数转为一个布尔值,然后求其反
    1.如果操作数是对象,则返回false
    2.如果操作数是一个空字符串,则返回true
    3.如果操作数是一个非空字符串,则返回false
    4.如果操作数是0,则返回true
    5.如果操作数是任意非0数值(包括Infinity),则返回false
    6.如果操作数是null,则返回true
    7.如果操作数是NaN,则返回true
    8.如果操作数是undefined,则返回true

!!模拟Boolean()转型函数,获得一个值对应的布尔值

原文链接:https://blog.youkuaiyun.com/qq_42853241/article/details/85064744

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值