JavaScript
基础
-
JavaScript中常用的输入输出语句有哪些?
先来说说输入语句,输入语句能够帮助用户通过键盘、鼠标等输入设备与计算机进行交互。输入语句有:
prompt(‘’)``//注意:无论输入什么,通过该语句传到计算机内部就只是字符串。
然后是输出语句,计算机处理完我们输入的语句后,会根据输出语句返回结果给用户。输出语句有:
alert()//会在打开浏览器后弹出警告对话框,优先级要比其他的输出语句高console.log()//方便用程序员调试,在控制台显示结果,document.write()//会将结果输出到body
-
何为字面量?
字面量是用于描述计算机中的事/物。字面量根据不同的类型,可以分为数字字面量100,字符串字面量‘a’,对象字面量{},数组字面量[]等 。
-
什么是变量,我们该如何使用变量?
变量就是一个存储数据的容器,也可以简单理解为盒子。既然是盒子(变量)包裹数据,那是不是得要一个盒子?我们选择用let关键字来和计算机说要一个盒子。由于之后我们可能会要更多的盒子装更多的数据,所以就得考虑给盒子取一个名字,帮助我们分辨不同盒子的用处。变量的声明就应该要有let 、变量名。变量的声明如下:
let 变量名
。当我们将数据装入盒子后,这个盒子就完成了它的使命。我们将变量(盒子)声明并赋值(赋值的过程=装数据的过程,赋值用等号,左边变量,右边值)称之为变量初始化。变量的初始化如下:let 变量名=值
。值得注意的是:一个变量不能装太多的数据,它只能装一个。例如:申请了一个名为name的变量,name里面装的是李明。则它的语法为
let name=‘李明’
。要是还想装张三,是不行的。只能把李明这个数据撤掉,才能装上张三。也就是得修改变量中的数据,语法为name='张三',
注意修改变量中的值时,不能对同一变量再次声明,一个变量只能声明一次。原因是已经向计算机申请了名为name的变量,使用let关键字就会再申请一次同样名为name的变量。原来已经存在name,新增一个name必定会报错。但是呢,只要你申请的变量与原先申请的变量名字不同,则可以再次使用let.我们还可以使用let ,同时声明多个变量。例如:
let name ,age
(这样的写法不推荐,虽然写法简单,但不易阅读).推荐声明一个变量就用一次let ,例如:let name
let age
-
变量名的规则是什么?
第一:它肯定不能是关键字;(变量名与原先的计算机存在的名字相同会起冲突)
第二:它是可以由下划线、字母、数字、$组成,且数字不能开头;(JavaScript起源在国外,最初设计时受到Java等语言得影响,他们的文字都是英文,所以取个名字也肯定含有字母;不以数字开头是为了避免与数值表达式混淆,
例如:let 123abc=5 会被误解为数字123与标识符abc相乘的表达式,从而导致语法错误。
限制变量名的组成,可以避免出现一些不合法或不符合预期的变量名)第三:它严格区分大小写。
规范:起名要由意义;遵循小驼峰命名法(第一个单词首字母小写,其余单词首字母大写)。
-
什么是常量,它是如何声明的?
常量指的是不能改变的量。常量实际也是个盒子,只不过盒子与装入的数据绑定在一起了,不得更改盒子中的数据。这就使得它一旦声明就必须赋值,一定要明确常量里头装的是啥,不然这个常量与变量没有区别。
使用const关键字来声明常量,必须要赋值。它的语法如下:
const 常量名=值
。切记赋值后,千万别再重新赋值了。错误示范:const p=3.14
p=3.1415 //会直接报错的`
-
何为数组,数组与变量有何区别、共同点,数组中的元素如何访问,如何获取数组长度?
数组能够存放任意类型的数据,相当于装鸡蛋的那个蛋托,不过得为这个蛋托上的每一个坑编号(数组中的每个元素是有序号的,它按顺序存储)。
数组的声明也是得写数组名、用let关键字申请存储空间。例如:
let 数组名=[元素0,元素1...].
它与变量的区别在于它能够存储多个数据;每个数据都是有序的。
共同点:就是它们俩都是装数据的容器。
访问数组元素:
let 数组名=[元素0,元素1...],//假设想要访问第一个元素,我们可以通过下标取数据,由于下标是从0开始的标记的,所以第一个元素的下标就是0,可以这样写:数组名[0]
想要获取数组的长度:可以通过
数组名.length
获取 -
为什么要对数据进行分类?数据类型有哪些?基本数据类型有哪些?
图书馆存储着不同类型的书籍,为了方便管理,图书馆工作人员将书进行分类。让读者能够一目了然能够找到他所想找的书籍,省去不少时间。所以说我们对数据进行分类,主要是为了省事、省时、方便管理,还能充分高效的利用内存。
数据类型分别有简单数据类型和复杂数据类型。
简单数据类型也叫基本数据类型,主要分为
number(数字类型,正数、负数、正数、小数。另外需要注意的是NaN,它代表一个计算错误,是一个不正确的或者一个未定义的数学操作所得到的结果,只要是遇上NaN就会成为NaN);
string(字符串类型,由单引号’'、双引号""或反引号`包裹的数据都叫字符串,推荐用单引号(原因是社区中太多人用单引号了,少数服从多数。而且用单引号方便嵌套,如果字符串中包含引号,使用单引号作为字符串的引号可以方便地在字符串中嵌套双引号,或者反之。这样可以避免在字符串中使用转义符号,使代码更简洁。例如:var message = ‘He said, “Hello!”’;
var message2 = “He said, ‘Hello!’”;第一个更好些))
字符串拼接:字符串拼接主要用于字符串与变量拼接。拼接两个字符串用+号。加号在数字中表示加法,如1+1;在字符中表示拼接,如’我‘+’爱中国‘。
模板字符串:要是只有’+‘能拼接变量和字符串会变得比较麻烦。就比如:document.write(‘你好,我是’+name+‘来自’+country)
模板字符串能够帮助我们减轻一点麻烦。document.write( ` 你好,我是 n a m e 来自 {name}来自 name来自{country}`),遇到变量用${}包住变量,记得加上反引号``.
boolean(布尔类型,只含true、false两个值。常用于判断对错)
undefined(未定义类型,也就是没有赋值的情况。一般情况下,都是根据赋值后的结果来判断数据类型,所以没有赋值时就是undefined类型)
该类型的使用场景:开发时经常声明一个变量,等待传送过来的数据。如果我们不知道这个数据是否传过来,可以直接检查该变量是不是undefined类型,如果是就没传,不是则传了。
null(空类型,与undefined很像,null只是放空值进去变量,赋值了,代表无、空或值未知的特殊值;而undefined只是声明没有赋值。)
null开发中的使用场景:将来有个变量存了一个对象,但是该对象还没被创建好,先给个null。
-
如何进行数据类型转换?
数据类型为什么要转换?为啥不一开始就把他设置为目的类型(即我们想要的类型)?javascript 是弱数据类型,JavaScript也不知道变量属于哪种数据类型,只有赋值了才清楚。再有就是原先设计时的坑:使用表单、prompt获取到的数据默认是字符串类型的,不能直接进行简单的加减运算。
有两种类型转换方式:隐式转换、显示转换。隐式转换不用得着我们可以转换,这个是由系统帮我们自动转换。
隐式转换的规则:+号两边有一个是字符串就会把另一个转为字符串。
遇到-*/%符号时就会将字符串转数字 。也要注意布尔值在需要时会转换为数字(true为1,false为0)。
注意:当+号作为正号是可以转成数字类型。
显示转换:这个是由人为来转数据类型的,我们想转什么类型得自己来。
显示转换规则:转换成数字型:Number(数据),若是字符串内容里含有非数字,则转换失败时结果为NaN,即不是一个数字,NaN也属于number类型的数据,代表非数字。
转整数:用parseInt(数据)
转成小数:用parseFloat(数据)
转成字符串型:String(数据)
转成字符串型还有另一种形式:变量.toString(进制) 。
想知道数据的类型可以使用typeof(x)函数,运算符写法:typeof x
-
有哪些运算符类型?
**算术运算符:±*/%。**与数学运算是一样的,分别表示加减乘除。除了%,表示求余(取模)。优先级越高,则会优先执行,所以会先乘除取余,后加减,要是有括号优先算括号内的。
逻辑运算符:&&、 ||、 ! 。&&逻辑与 表示一假全假,指的是里面有一个条件不满足,所有条件都会不满足。就比如一架飞机,有一个零件出问题,那么整个飞机的零件都是没用的。特点:符号两边都为true
结果才为true 。举例:1>2 && 2>1 结果为假,因为1>2是错误的。||逻辑或 表示一真全真,只要满足其中一个条件,那么剩余条件都不用管了,全符合条件了。就比如说 点外卖付款时,只要你有其中一个付款方式就能够支付!特点:符号两边有一个true就为true。举例:1<2 ||1>2 结果为真,1<2是正确的。
!中文名为逻辑非 表示否定。真就是假,假就是真。
比较运算符:>= ,>,<=,<,==,===,!==。>= ,>,<=,<这四个比较我们都很熟悉,就是大于等于、大于、小于等于、小于。
主要要注意的是==、===、!==:判断左右两边的值是否相等;===:判断左右两边的类型和值是否都相等(推荐用它,而不是==);!==:判断左右两边是否不全等。比较的结果只会是boolean的,会得到true或false。
赋值运算符:=、+=、-=、*=、/=、%=;。=是将等号右边的值赋给左边,要求左边必须时一个容器。其他的赋值运算符,如:+=是先把左右两边的数字相加,加法完成后,将加法后的结果赋值给左边的容器。-=、*=、/=、%=分别表示先算减法再赋值、先算乘法再赋值、先算除法再赋值、先取余再赋值。
三元运算符:条件表达式?表达式1:表达式2
一元运算符:++(自增作用就是让变量的值+1),–(自减作用就是让变量的值-1)。常用于计数。
分为前置自增、后置自增,前置自增就是将自增符号++放在变量(一般该变量类型是数字类型)的前边;如:++a后置自增就是将自增符号++放在变量的后面;如:a++.
前置自增与后置自增的区别:一般运算我们都是习惯从左到右计算,自增符号++在前,表示想要先加再用;就比如说:
let a=1
console.log(++a + 2) //结果为4,在运算中我们先++,后+
,若是自增符号++在后,那么表示想要先用在加。比如:
let a=1
console.log(a++ + 2) //结果为3,在这个运算中我们先不管++,先算+,再++
注意:前置自增与后置自增没有啥区别。理由是假设变量a分别做前置自增++a、后置自增a++,看清楚它就只有一个操作就是加1,故先加后用、先用后加就在这起不到作用,只有多个运算符与++在一起,它才有作用。一般单独使用时,开发时我们习惯用后置自增a++.
自减符号–与自增符号++用法一致,前置自减就是先减后用;后置自减 就是先用后减。
-
运算符之间的优先级是怎样的?
优先级越高,越早执行。相当于会员等级越高,优先服务。
-
JavaScript的注释是怎样的?
在编程语言中,注释都是不会执行的。它是为了方便程序员阅读代码。
提高代码的可读性。
JavaScript中的单行注释(一个//只能注释一行的内容):使用//
多行注释(一个/* */能注释多行的内容):使用/* */
-
JavaScript的注释是怎样的?
在编程语言中,注释都是不会执行的。它是为了方便程序员阅读代码。
提高代码的可读性。
JavaScript中的单行注释(一个//只能注释一行的内容):使用//
多行注释(一个/* */能注释多行的内容):使用/* */