JavaScript中基本知识
变量
每个变量仅仅是一个用于保存值的占位符而已。
用var操作符定义的变量将成为定义该变量的作用域中的局部变量。
省略var操作符可以定义一个全局变量。但是不推荐这种做法,因为在局部作用域中定义的全局变量很难维护。
数据类型
基本数据类型:①Undefined②Null③Boolean④Number和⑤String
typeof操作符
①“undefined”——如果这个值未定义
②“boolean”——如果这个值是布尔值
③“string”——如果这个值是字符串
④“number”——如果这个值是数值
⑤“object”——如果这个值是对象或者null
⑥“function”——如果这个值是函数
var message="some string";
alert(typeof message);
typeof操作符的操作数可以是变量,也可以是数值字面量。
Null类型是第二个只有一个值的数据类型,这个特殊的值是null。null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时会返回“object”的原因。
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null,而不是其他值。
Boolean类型:Boolean类型是ECMAScript中使用得最多的一种类型,该类型只有两个字面值:true和false。这两个值与数字值不一样,因此true不一定等于1,而false也不一定等于0。
要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean()函数。
var message="Hello World!";
var messageasBoolean=Boolean(message);
Number类型:
在进行算术计算时,所有以八进制和十六进制表示的数值最终都将被转换成十进制数值。
①浮点数值:所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数值。var floatNum1=1.1;
由于保存浮点数值需要的内存空间是保存证书的两倍,因此ECMAScript会不失时机地将浮点数值转换为整数值。
②NaN:即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。
特点(1)首先,任何涉及NaN的操作都会返回NaN。(2)NaN与任何值都不相等,包括NaN本身。
isNaN()函数:这个函数接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值”。isNaN()在接收到一个值之后会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值。而任何不能被转换为数值的值都会导致这个函数返回true。
③有三个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()
转型函数Number()可以用于任何数据类型,而另外两个则专门用于把字符串转换成数值。
处理整数的时候更常用到parseInt()函数,用parseInt()函数转换空字符串会返回NaN。
转换时使用参数:var num=parseInt("0xAF",16);//175,参数表示按十六进制解析
parseFloat()只解析十进制,从第一个字符(位置0)开始解析每个字符,而且一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。它始终都会忽略前导的零。
String类型
String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号或者单引号表示。
①字符字面量:String数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者具有其他用途的字符。
②字符串的特点:ECMAScript中的字符串是不可变的。也就是说,字符串一旦创建成功,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
③转换为字符串:要把一个值转换为一个字符串有两种方式,第一种是使用几乎每个值都有的toString()方法,这个方法唯一要做的就是返回相应值的字符串表现。
数值、布尔值、对象和字符串值都有toString()方法。但是null和undefined值没有这个方法。
调用toString()方法不必传递参数。
在不知道要转换的值是不是null或者undefined的情况下,还可以使用转型函数String(),这个函数能够将任何类型的值转换成字符串。
String()函数遵循以下转换规则:
如果值有tiString()方法,则调用该方法(没有函数)并返回相应的结果
如果值是null,则返回“null”
如果值是undefined,则返回“undefined”
Object类型:ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。
object类型所具有的任何属性和方法也同样存在于更具体的对象中。
object的每个实例都具有下列属性和方法
constructor:保存着用于创建当前对象的函数。
hasOwnProoerty(propertyName):用于检查给定的属性在当前对象实例中是否存在。其中作为参数的属性名(propertyName)必须以字符串形式指定。
isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型
propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举,与hasOwnProoerty()方法一样,作为参数的属性名必须以字符串形式指定。
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应
toString():返回对象的字符创表示
valueOf():返回对象的字符串、数值或者布尔值表示,通常与toString()方法的返回值相同。
操作符
ECMA-262描述了一组用于操作数据值的操作符,包括算术操作符(如加好和减号)、位操作符、关系操作符和相等操作符。
一元操作符:只能操作一个值的操作符叫做一元操作符
①递增、递减操作符
②一元加和减操作符
位操作符
位操作符用于在最基本的层次上,即按内存中表示数值的位来操作数值。
对于有符号的整数,32位中的前31位用于表示整数的值。第32位用于表示数值的符号:0表示正数,1表示负数。
按位非(NOT)、按位与(AND)、按位或(OR)、按位异或(XOR)、左移、有符号的右移、无符号的右移
布尔操作符
①逻辑非:这个操作符会返回一个布尔值,逻辑非操作符首先会先将它的操作数转换为一个布尔值。然后再对其取反。
②逻辑与:逻辑与操作符由两个和号(&&)表示,有两个操作数:逻辑与操作可以应用于任何类型的操作数,而不仅仅是布尔值。
③逻辑或:逻辑或操作符由两个竖线符号(||)表示,有两个操作数。
乘性操作符:
ECMAScript定义了3个乘性操作符:乘法、除法和求模。
加性操作符:加法、减法、
关系操作符:
如果两个操作数都是数值,则执行数值比较。
如果两个操作数都是字符串,则比较两个字符串对应的字符编码值。
如果一个操作数是数值,则将另一个操作数转换为一个数值,然后执行数值比较。
如果一个操作数是对象,则调用这个对象的valueOf()方法,用得到的结果按照前面的规则执行比较。如果对象没有valueOf()方法,则调用toString()方法,并用得到的结果根据前面的规则执行比较。
如果一个操作数是布尔值,则先将其转换为数值,然后再执行比较。
在比较字符串时,实际比较的是两个字符串中对应位置的每个字符的字符编码值
相等操作符
对象的比较:
相等和不相等
相等的操作符由两个等于号(==)表示,如果两个操作符相等,则返回true,而不相等操作符由叹号后跟等于号(!=)表示,如果两个操作数不相等,则返回true。这两个操作符都会先转换操作数(通常称为强制转型),然后再比较它们的相等性。
全等和不全等
全等由(===)表示,它只在两个操作数未经转换就相等的情况下返回true
条件操作符
赋值操作符
简单的赋值操作符由等于号(=)表示,其作用就把右侧的值赋给左侧的变量
逗号操作符:使用逗号操作符可以在一条语句中执行多个操作。逗号操作符多用于声明多个变量;但除此之外,逗号操作符还可以用于赋值。
语句
if语句 if(condition) statement1 else statement2
其中的condition(条件)可以是任意表达式;而且对这个表达式求值的结果不一定是布尔值。ECMAScript会自动调用Boolean()转换函数将这个表达式的结果转换为一个布尔值。
do-while语句
do-while语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件。在对条件表达式求值之前,循环体内的代码至少会被执行一次。
while语句:while语句属于前测试循环语句。也就是说,在循环体内的代码被执行之前,就会对出口条件求值。因此,循环体内的代码有可能永远不会被执行。
for语句
for语句也是一种前测试循环语句,但它具有在执行循环之前初始化变量和定义循环后要执行的代码的能力。
for-in语句:for-in语句是一种精准的迭代语句,可以用来枚举对象的属性。
label语句 label:statement
start:for (var i=0;i<count;i++){
alert(i);
}
break和continue语句
break和continue语句用于在循环中精确地控制代码的执行。其中break语句会立即退出循环,强制继续执行循环后面的语句。而continue语句虽然也会立即退出循环,但退出循环后会从循环的顶部继续执行。
with语句:with语句的作用是将代码的作用域设置到一个特定的对象中
with(expression) statement;
switch语句
函数
通过函数可以封装任意多条语句。
ECMAScript中的函数在定义时不必指定是否返回值。实际上,任何函数在任何时候都可以通过return语句后跟要返回的值来实现返回值。
JavaScript中基本知识的更多相关文章
- javascript中模块化知识总结
JavaScript 模块化开发 1. 模块化介绍 掌握模块化基本概念以及使用模块化带来的好处 当你的网站开发越来越复杂的时候,会经常遇到什么问题? 恼人的命名冲突 繁琐的文件依赖 历史上,JavaS ...
- javascript中构造函数知识总结
构造函数的说明 1.1 构造函数是一个模板 构造函数,是一种函数,主要用来在创建对象时对 对象 进行初始化(即为对象成员变量赋初始值),并且总是与new运算符一起使用. 1.2 new 运算符 new ...
- javascript中关于日期和时间的基础知识
× 目录 [1]标准时间 [2]字符串 [3]闰年[4]月日[5]星期[6]时分秒 前面的话 在介绍Date对象之前,首先要先了解关于日期和时间的一些知识.比如,闰年.UTC等等.深入了解这些,有助于 ...
- day29—JavaScript中DOM的基础知识应用
转行学开发,代码100天——2018-04-14 JavaScript中DOM操作基础知识即对DOM元素进行增删改操作.主要表现与HTML元素的操作,以及对CSS样式的操作.其主要应用知识如下图: 通 ...
- JavaScript中函数函数的定义与变量的声明<基础知识一>
1.JavaScript中函数的三种构造方式 a.function createFun(){ } b.var createFun=function (){ } c.var createFun=new ...
- java基础66 JavaScript中的事件、localtion对象、screen对象(网页知识)
1.JavaScript中的事件注册 1.1.事件的注册方式 方式1:直接在html元素上注册 <body onLoad="ready()"></body > ...
- java基础62 JavaScript中的函数(网页知识)
1.JavaScript中,函数的格式 function 函数名(形参列表){ 函数体; } 2.JavaScript中,函数需要注意的细节 1.在javaScript中,函数定义形参时,是不能使用v ...
- 前端知识体系:JavaScript基础-原型和原型链-理解原型设计模式以及 JavaScript中的原型规则
理解原型设计模式以及 JavaScript中的原型规则(原文地址) 1.原型对象:我们创建的每一个函数(JavaScript中函数也是一个对象)都有一个原型属性 prototype,原型属性实质上是一 ...
- javascript中的操作符详解1
好久没有写点什么了,根据博主的技术,仍然写一点javascript新手入门文章,接下来我们一起来探讨javascript的操作符. 一.前言 javascript中有许多操作符,但是许多初学者并不理解 ...
随机推荐
- SparseArray替代HashMap来提高性能
SparseArray是 Android框架独有的类,在标准的JDK中不存在这个类.它要比 HashMap 节省内存,某些情况下比HashMap性能更好,按照官方问答的解释,主要是因为SparseAr ...
- 局部安装webpack时,使用webpack命令时提示webpack不是内部命令解决方法
现在js发展太快了,根本看不懂啊.于是乎想做做功课,于是乎看到了这些“奇怪”的写法,原来好多都是遵循了 ECMASCRIPT6,好吧,在本地看看怎么用的吧.写在本地的环境下, 发现各种报错,根本不能用 ...
- Unity3D跨平台动态库编译---记kcp基于CMake的各平台构建实践
一 为什么需要动态库 1)提供原生代码(native code)的支持,也叫原生插件,但是我实践的是c/cpp跨平台动态库,这里不具体涉及安卓平台java库和ios平台的objectc库构建. 2)某 ...
- 命令“mkdir "xxx" xcopy "xxx" "xxx" /S /E /C /Y”已退出,代码为 9009。
前几天公司来了个新同事,使用的VS2013,但我们的所有项目都是使用VS2012创建的,我想用13打开应该没有什么问题.昨天新同事修改完代码提交后,我获取完成后无法编译成功,提示: 错误 3 命令“m ...
- Redis数据类型(字符串)
Redis存放的字符串为二进制是安全的.字符串长度支持到512M. incr 递增数字INCR key 当存储的字符串是整数时,redis提供了一个实用的命令INCR,其作用是让当前键值递增,并返回递 ...
- 基于vue2+nuxt构建的高仿饿了么(2018版)
前言 高仿饿了么,以nuxt作为vue的服务端渲染,适合刚接触或者准备上vue ssr的同学参考和学习 项目地址如遇网络不佳,请移步国内镜像加速节点 效果演示 查看demo请戳这里(请用chrome手 ...
- jquery-fullpage插件
jquery fullpage.js全屏滚动插件/jquery-easing插件 // 前端自动化工具安装插件 在页面引入: <link rel="stylesheet" h ...
- Sharepoint 2013企业内容管理学习笔记(二) 全自动化内容管理
全自动化内容管理 所谓全自动化内容管理啊,其实对于用户来说,就更简单便捷有爱了,用户只需要把文件上传到部门网站的放置库中,文件就会快速自动躺到企业记录中心的某个归档记录库了,怎么样,很方便,有没有,很 ...
- Android NDK 入门与实践
NDK 是什么 NDK 全称 Native Development Kit,可以让您在 Android 应用中调用 C 或 C++ 代码的工具. NDK 好处 1.NDK 可以生成 .so 文件, 方 ...
- SqlServer存储过程中常用函数及操作
1.case语句 用于选择语句 SELECT ProductNumber, Category = CASE ProductLine WHEN 'R' THEN 'Road' WHEN 'M' THEN ...