JavaScript基本概念

变量

定义变量时要使用var操作符,后跟变量名。如 var=message; 该变量可以保存任何值。未经过初始化的变量,会保存一个特殊的值:undefined 。
要注意的是var操作符定义的变量是该变量作用域中局部变量。如果在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁,不过可以省略var操作符从而创建一个全局变量。

数据类型

有5中简单数据类型:Undefined,Null,Boolean,Number,String还有一种复杂数据类型Object。Object本质上是由一组无序的名值对组成的。

typeof操作符

用于检测给定变量的数据类型。
var message=“some string”;
alert(typeof message); //返回String

Undefined类型

Undefined类型只有一个值,即特殊的undefined。

Null类型

Null类型也只有一个值,null。表示一个空对象指针。

Boolean类型

有true和false两个值,区分大小写。
要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean()
var m=“hello”;
var mAsBoolean=Boolean(m);
字符串m被转换成了一个Boolean值,该值被保存在mAsBoolean变量中。

Number类型

表示整数和浮点数值。
数值范围:ECMAScript能够表示的最小数值保存在Number.MIN_VALUE中——在大多数浏览器中,这个值是5e-324。能够表示的最大数值保存在Number.MAX_VALUE中——在大多数浏览器中,这个值是1.7976931348623157e+308。如果得到了一个超出JavaScript数值范围的值,那么这个数值将被自动转换成特殊的Infinity值。
NaN,即非数值,是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。
数值转换:有三个函数能把非数值转换成数值:Number(),parseInt(),parseFloat()。第一个函数可以用于任何数据类型,而另外两个函数则专门用于把字符串转换成数值。
Number()函数转换规则:
Boolean true返回1,false返回0.
数字值,只是简单的传入和返回。
null值,返回0.
undefined,返回NaN。
字符串:都转化成十进制,“001”会转换成1(去掉前面的0)
parseInt()转换规则:
能自动检测多少进制的数,从开头第一个不是数字的字符开始解析,空字符串会返回NaN。
指定基数(即指定多少进制)
var m=parseInt(“AF”,16); //175
parseFloat()和parseInt类似,负责检查浮点数。

String类型

用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。可以用“”或‘’表示。
1.字符字面量
\n 换行 \t 制表 \b 退格 \r 回车 \f 进纸 \斜杠 ' 单引号 " 双引号 \xnn 以十六进制代码nn表示的一个字符
\unnnn 以十六进制代码nnnn表示的一个Unicode字符。
这些字符字面量可以出现在字符串中的任意位置,被作为一个字符来解析。
2.字符串的特点
字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串。然后再用另一个包含新值的字符串填充该变量。
var lang=“java”;
lang = lang+“Script”;
3.转换为字符串
第一种 toString()方法。多数情况下,toString()不必传递参数,但是可以传递输出数值的基数。(以多少进制输出)。
在不知道要转换的值是不是null或undefined的情况下,还可以使用转型函数String(),这个函数能够将任何类型的值转换成字符串。

Object类型

创建Object类型的实例并给它添加属性和(或)方法,就可以创建自定义对象。 var o = new Object();
Object的每个实例都具有下列属性和方法:

  1. constructor :保存着用于创建当前对象的函数。
  2. hasOwnProperty:用于检查给定的属性在当前对象实例中是否存在。作为参数的属性名,必须以字符串形式指定(o.hasOwnProperty(“name”))。
  3. isPrototypeof(object):用于检查传入的对象是否是当前对象的原型。
  4. propertyIsEnumerable:用于检查给定的属性是否能够使用for-in语句来枚举。作为参数的属性名必须以字符串形式指定。
  5. toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
  6. toString():返回对象的字符串表示
  7. valueOf():返回对象的字符串,数值或布尔值表示,通常与toString()方法的返回值相同。

操作符

一元操作符

只能操作一个值的操作符叫做一元操作符。
1.递增和递减操作符
和C语言相同 前置++ -- 后置++ --
2.一元加和减操作符
+不改变数值 -变为负

位操作符

对于有符号的整数,32位中的前31位用于表示整数的值。第32位用于表示数值的符号,0表示整数,1表示负数。比如18用二进制表示是10010.这是五个有效位,这5位本身就决定了实际的值。负数同样以二进制码存储,但使用的格式是二进制补码。按位非 ~ 按位与 & 按位或 | 按位异或 ^
左移<< ,在向左移位后,原数值的右侧多出了5个空位。左移操作会以0来填充这些空位。
有符号的右移 >>和左移相反,但是空位用0填充,填充和不填充一样。
无符号的右移>>>对于正数的无符号右移和有符号右移结果相同,负数不同。
其它操作符与C语言相同。

语句

if语句,do-while语句,while语句,for语句,switch语句和C相似

for-in语句

是一种精准的迭代语句,可以用来枚举对象的属性。
for(var propName in window){
document.write(propName);
}
使用for-in循环来显示了BOM中window对象的所有属性。

label语句

使用label语句可以再代码中添加标签。
语法 label:statement
实例:start:for(var i=00;i<count;i++){
alert(i);
}
定义的标签可以再将来由break或continue语句引用。加标签的语句一般与for语句等循环语句配合使用。

break和continue语句

和C语言相似,不过可以在continue 后面加定义的标签,可以跳转到相应的位置。

with语句

with语句的作用是将代码得作用域设置到一个特定的对象中。
定义with语句的牟迪主要是为了简化多次编写同一个对象的工作。如:
var qs = location.search.substring(1);
var hostName=location.hostname;
上面几行代码都包含location对象,如果使用with语句,可以改写成:
with(location){
var qs = search.substring(1);
var hostName=hostname;
}

函数

ECMAScript中的函数使用function关键字来声明,后跟一组参数以及函数体。基本语法为:
function functionName(arg0,arg1……){
statments
}
在函数定义时不必指定是否返回值。实际上,任何函数在任何时候都可以通过return语句来实现返回值。
没有重载,如果定义了两个名字相同的函数,则改名字只属于后定义的函数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,271评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,725评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,252评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,634评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,549评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,985评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,471评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,128评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,257评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,233评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,235评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,940评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,528评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,623评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,858评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,245评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,790评论 2 339

推荐阅读更多精彩内容