您的位置:首页 > Web前端 > JavaScript

笔记3-javascript基本概念

2019-04-20 17:45 232 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_41539074/article/details/89420904

一.语法

1.1 ECMAScript中的一切(变量、函数名和操作符)都区分大小写。

1.2 标识符:指变量、函数、属性的名字,或者函数的参数。ECMAScript标识符采用驼峰大小写格式,也就是第一个字母小写,剩下的每个单词的首字母大写

1.3 严格模式:为JavaScript定义了一种不同的解析与执行模型。在严格模式下,ECMAScript3中的一些不确定行为将得到处理,而且对某些不安全的操作会抛出错误。

在整个脚本文件中启用严格模式,可以在顶部添加如下代码:
“use strict”;
这行代码看起来像字符串,而且也没有赋值给任何变量,但其实它是一个编译指示(pragma),用于告诉支持的JavaScript引擎切换到严格模式。

二.变量

ECMAScript的变量是松散类型的。所谓松散类型就是可以用来保存任何类型的数据。换句话说,每个变量仅仅是一个用于保存值的占位符而已。

var message;
这行代码定义了一个名为message的变量,该变量可以用来保存任何值(像这样未经过初始化的变量,会保存一个特殊的值——underfined)。ECMAScript也支持直接初始化变量:
var message=“hello world”
像这样初始化变量并不会把它标记为字符串类型,初始化的过程就是给变量赋值那么简单。
注:给未经申明的变量赋值在严格模式下会导致抛出ReferenceError错误。

三.数据类型

3.1 typeof操作符:检测给定变量的数据类型
typeof的操作数可以是变量:typeof(message)也可以是数值字面量:typeof(98);
typeof是一个操作符而不是一个函数,因此typeof()中的()可以使用但不是必须的。

注:
调用typeof null会返回object,因为特:殊值null会被认为是一个空的对象引用。
从技术角度讲,函数在ECMAScript中是对象,不是一种数据类型。然而函数也确实有一些特殊的属性。因此通过typeof操作符来区分函数和其他对象是有必要的。

3.2 Underfined类型
underfined类型只有一个值,即特殊的underfined。在使用var申明变量但未对其进行初始化时,这个变量的值就是underfined,例如:
var message;
此时message的值为underfined
注:
字面值underfined的主要目的是用于比较,而ECMS-262第3版中并没有规定这个值,第3版引入这个值是为了正式区分空对象指针与未经初始化的变量。
对未初始化和未声明的变量执行typeof操作符都返回了underfined值

3.3 Null类型
null是第二个只有一个值的数据类型,这个特殊的值是null
从逻辑角度来看,null值表示一个空对象指针
实际上underfined值是派生自null值的,因此ECMS-262规定他们的相等性测试要返回true:
alert(null == underfined); //true
这里null和underfined之间的操作符“==”总是返回true,不过要注意的是,这个操作符处于比较的目的会转换为其操作数。
注意:
只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null值。这样做不仅可以体现null作为空对象指针的惯例,而且也有助于进一步区分null和underfined

3.4 Number类型
3.4.1 浮点数值
如果小数点后面没有跟任何数字,那么这个数值就可以作为整数值来保存。
如果浮点数值本身表示的就是一个整数(如1.0),那么该值也会被转换为整数
var floatNum1=1. ; //小数点后面没有数字,解析为1
varfloatNum2=10.0; //整数——解析为10

数值范围问题:
如果某次计算的结果得到了一个超出JavaScript数值范围的值,那么这个数值将自动被转换成特殊的Infinity值
要想确定一个数值是不是有穷的,可以使用isFinite()函数。这个函数在参数位于最小与最大数值之间时会返回true
Number.MIN_VALUE:表示最小数值
Number.MAX_VALUE:表示最大数值

3.5 NAN
NAN用于表示一个本来要返回数值的操作数未返回数值的情况
在ECMAScript中任何数值除以非数值会返回NAN
两大特点:

  • 任何涉及NAN的操作(例如 NaN/10)都会返回NAN
  • NaN与任何值都不相等,包括NaN本身
    任何不能被转换为数值的值都会导致这个函数返回true:
    alert(isNaN(NaN)) //true
    alert(isNaN(10)) //false(10是一个整数)
    alert(isNaN(“blue”)) //true(不能被转换为数值)

数值转换:
parseFloat()只解析十进制值,始终都忽略前导0

3.6 String类型
字符串的特点:字符串的长度是不可变的,也就是说,字符串一旦创建,他们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量:
var lang=“Java”;
lang=lang+“Script”;
以上失利中的变量lang开始时包含字符串"Java”。而第二行代码把lang的值重新定义为“JavaScript”。实现这个操作的过程如下:
首先创建一个能容纳10个字符“”的新字符串,然后在这个字符串中填充“Java”和"script
”,最后一步是销毁原来的字符串“Java”和字符串“Script”,因为这两个字符串已经没有用了。
注:
每个字符串(数值、布尔值、字符串值)都有一个toString()方法,该方法返回字符串的一个副本,但null和underfined没有toString()方法

3.7 Object类型
ECMAScript中的对象其实就是一组数据和功能的集合
Object类型所具有的任何属性和方法也同样存在于更具体的对象中
在ECMAScript中object是所有对象的基础

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: