语法:

  1.区分大小写!!

  2.标识符:既变量,函数名,属性名,参数。    

        1.第一个字符必须为字母,_,或者$

        2.其他字符可以是字母,_,&,或者数字

  3.注释:

        1.单行注释://

        2.多行注释: /*    */

  4.严格模式:在函数体开头注明"use strict"

function do(){
"user strict";
//函数体
}

  5.关键字与保留字:不能用于标识符

      关键字与保留字整理http://www.qeefee.com/js/javascript-keywords-reservedwords 

  6.变量

        用于var操作符的定义的变量将成为定义该变量的作用于的局部变量,既在函数中使用var定义一个变量,那么这个变量在函数退出后就会销毁。

        变量的生命分为显式声明(var i=0,作为局部变量)与隐式声明(i=0,作为全局变量)。

  7.数据类型

        基本数据类型:null,boolean,String,number,undefined

        复杂数据类型:object

  8.typeof操作符

        用来判断变量,字面量的数据类型

        返回值为"undefined","boolean","number","string","object","function"

  9.Undefined类型

        值只有undefined,在使用var声明变量而未对其初始化时,这个值是undefined,对一个var mess来说,其默认为var mess=undefined

        对于未声明的变量和未初始化的变量,typeof的返回值均为undefined

  10.Null类型

        值只有null,对于var car=null,其typeof的返回值为object

  11.Boolean类型

        值为true  false

        对于任何数据类型,均可以使用boolean()函数来强制转换为boolean类型,至于返回值为true或者false,则主要看转换规则

数据类型 转换为true 转换为false
boolean true false
string 非空字符串 ""(空字符串)
number 任何非零数字 0和NaN(非数值)
object 任何对象 null
Undefined n/a no application(既不适用) unfined
var message="hello world";
if(message){
alert("hello");
}

  12.Number类型

        定义八进制数 var num=070  即为八进制的56  即在8进制的字面量中第一位必须为0   16进制的前两位为0x

        isFinite()判断一个数是不是有穷的(是不是在最大值Number.MAX_VALUE与最小值.Number.MIN_VALUE之间)。  

        NaN--not a number(非数值) 任何数值除以非数值都会返回NaN,NaN与任何值都不想等,包括他本身

        isNaN()判断参数是否为非数值,isNan()在接收参数后,首先会试图将它转换为一个数值(这个过程只执行1次),既调用Number()函数,然后进行判断,所以isNaN("10")的返回值仍为false,即便"10"为一个字符串,此外,isNaN(true)亦然为false,因为false可以被转换为数字1。

        数值转换:转型函数Number(),字符串转换函数parseInt(),parseFloat()

        Number()函数转换规则

boolean true为1,false为0
null 0
undefined NaN
number 原样返回
string

1.字符串只有数字,返回相应的10进制,如“11”返回11,“011”返回11(包括+ -号)

2.字符串内容为浮点数,返回浮点数

3.字符串内容包含16进制格式,如“0xf”,返回相同大小的10进制

4.字符串为空,返回0

5.字符串包含其他格式,返回NaN

object

调用valueof(),依照前面的规则返回相应的值,如果转换结果是NaN,则调用

toString(),然后依照上述规则返回值

        praseInt()/praseFloat()对空字符串的返回值为NaN,他们会只提取有效数字与小数点

        可以为praseInt()设置第二个可选参数,既指定转换时的进制

  13.String类型

        通过使用+运算符来实现字符串的拼接

        toString()转换为字符串,Null和undenined没有这个方法,其可选参数为进制数

        String()转型函数,规则,对于有toString()方法的类型,应该优先使用toString(),如果值为null,则返回"null",如果值是undefined,则返回"undefined";

  14.Object类型

        对象就是一组功能于数据的集合,克应通过new操作符后跟要创建的对象类型的名称来创建,而创建object类型的实例并为为其添加属性和方法,就可以创建自定义对象,Object类型所拥有的一切方法和属型同样也存在于实例中.var obj=new Object();

        constructor:构造器,用于保留创建的对象的函数,上例中构造器为Object();

        hasOwnProperty(propertyName):用于检查给定属性是否在当前对象的实例中。用法:obj.hasOwnProperty("name");

        PropertyIsEnumerable(propertyName):用于检查给定属型是否可以使用for-in循环

        isPrototypeof(object):用于检查传入的对象是否是当前对象的原型。

        toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。

        toString():返回对象的字符串表示。

        valueof():返回对象的字符串,boolean,number表示,通常与toString()方法的返回值相同。

  15.操作符:对于ECMAScript,操作符可适用于很多数据类型,如boolean,number,string,object,在应用于object时,相应的操作符通常会调用对象的valueof()或者toString(),以便于取得可以操作的值。··

        1.算数操作符

        2.位操作符

            用于最基本的层次上,既按内存中表示数值的位来操作数值(ECMAScript中的所有数值都是以IEEE-754 64位格式存储,但位操作符在使用时并不直接操作64位的值,而是先将64位转换为32位的整数,执行操作后,再转换为64位)此外,NaN,Infinity应用位操作时,这两个值都会被当作0处理,位操作符操作其他数据类型时,先自动使用Number()转型

            对于有符号的整数,32位的前31为表示值,最后一位表示符号位(0为+,1为-),正数以纯2进制格式存储,31位中的每一位都是2的幂,位0表示20,依次类推。负数以2进制补码存储(补码算法:先求该负数绝对值的2进制表示,然后求其反码,最后位0加1)

            按位非(NOT)用~表示,其结果是数值取反码   var a=25 ;var b=~a;alert(b)  //b==-26  可见其本质是所操作数的负值减1.

            按位与(AND)用&表示,与操作的结果为2进制的相与结果。

            按位或(OR)用|表示,其结果为2进制或操作的结果

            按位异或(XOR) 用^表示 ,其结果根据真值表,1 0为1  ,0 1为1,其他为0

            左移,用<<表示,移动几位,就用几个0填充(填充出现在最低位),不影响符号位   var a =2;var b=a<<5  ;alert(b);//b==64

            有符号右移,用>>表示,移动几位,就删除几个低位,然后再符号位右侧,数值位的最左侧以符号位的值填充。不影响符号位

            无符号右移,用>>>表示,把32都往右移动固定的个数,所以对正数,和>>结果相同,但对于负数来说,无符号右移会把负数的二进制当成正数的二进制,所以是以0填充高位     

        3.关系操作符

        4.相等操作符

        5.一元操作符(只能操纵一个值得操作符)中的前置递增(递减)与后置递增(递减)的区别  前置:变量的值在语句被求值以前被执行。后置:变量的值在包含他的语句被执行后才执行

            var age=21;                                                                  var age=21;

            var anotherage=++age +2;                 var anotherage=age++ +2;

            alert(age)    -- 22;                     alert(age)    -- 22

            alert(anotherage)   -- 24                                                 alertt(anotherage)     -- 23

          递增递减操作同样适用于其他数据类型,其转型规则与Number()相同,只需再添加递增,递减操作即可  

          一元加(减)操作符 var a=1 ;a= +a; //a==1      var a=1;a= -a;//a==-1   同样可用与Number()相同的转型规则操作其他数据类型。

        6.布尔操作符

            不能在逻辑操作中使用未定义的值

            逻辑非(!),自动使用Boolean()转型函数,然后操作

            逻辑或(||)

            逻辑与(&&)

        7.乘性操作符(*)

            当*结果大于ECMAScript数值的表示范围,则使用Infinity表示。

            NaN*num=NaN

            Infinity*0=NaN

            Infinity/Infinity=NaN

            0/0=NaN

            num(非0有限数)/0=Infinity 符号位取决于num的正负

        8.加性操作符

            要注意的是与一个字符串相加时,数值会被转换成字符串

        9.全等与不全等

            不全等会自己调用转型函数

        10.条件操作符

            variable =boolean_expersion ? true_value:false_value;

  16.语句

        常见的基本就是流程控制语句,不再赘述

        需要注意的一点是,在ECMAScript中,由于没有块级作用域,所以循环内部定义的变量也可以在外部访问到

        当for(;;),即为无限循环

        for-in:迭代语句,用来枚举对象的属性,若迭代对象的变量值为null或者undefined,则不执行循环体

          for(var propName in Window){

            document.write(propName);}

        label语句 :在代码中添加标签,以便将来使用  label:statement

              

strat:for(var i=0;i<count;i++){
alert(i);}

              label一般与break/continue连用,break:跳出当前循环,执行循环后面语句,若为嵌套,则跳出外部循环。continue:跳出当前循环,回到循环顶部继续循环,若为嵌套,执行外部循环。

  17.函数:function()

        函数调用的方法:1.通过函数名直接调用

                2.定义一个变量来调用(此方法一般适用于有返回值的函数)

        ECMAScript函数不必指定是否返回值,位于renturn后面的代码永远不会被执行,renturn也可以不带任何返回值,其意思是需要函数提前终止且不需要返回值,其实际的结果是返回undefined

        参数:参数在js解释器是以数组的形式保存的,也就是说即使在定义函数时没有定义参数,在调用时依然可以加入参数,在函数体内可以使用arguments对象来访问参数数组。

<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body> <script>
function a(){
alert(arguments[0]);
alert(arguments[0]+arguments[1]);
alert(arguments.length);
}
a("hello","world");
</script>
</body> </html>

        ECMAScript参数没有重载

javaScript入门2--基本概念的更多相关文章

  1. JavaScript入门几个概念

    JavaScript入门几个概念 刚刚入门JavaScript的时候,搞懂DOM.BOM以及它们的对象document和window很有必要. DOM是为了操作文档出现的API,document是它的 ...

  2. JavaScript入门笔记

    第一章 JavaScript语法 1.1 初识JavaScript 1.3 数据类型 1.4 string和boolean类型 1.5 算数操作符 第二章 JavaScript流程控制语句 2.1 循 ...

  3. Javascript高级程序设计——基本概念(一)

    一.语法 EMCA-262通过叫做ECMAScript的“伪语言”为我们描述了javascript实现的基本概念 javascript借鉴了C的语法,区分大小写,标示符以字母.下划线.或美元符号($) ...

  4. JavaScript入门篇 编程练习

    编程挑战 一.定义"改变颜色"的函数 提示: obj.style.color obj.style.backgroundColor 二.定义"改变宽高"的函数 提 ...

  5. JavaScript入门

    本篇内容是学习慕课网相关课程后,总结出可能未来会忘记的内容 (一)JavaScript入门操作 1.js代码插入位置,以及执行顺序 <head> <script type=" ...

  6. 慕课网JavaScript入门篇课程笔记

    1.js注释很重要 单行注释,在注释内容前加符号 “//”. <script type="text/javascript"> document.write(" ...

  7. JavaScript入门基础

    JavaScript基本语法 1.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=).算术运 ...

  8. JavaScript入门介绍(二)

    JavaScript入门介绍 [函数] 函数function 是Javascript的基础模块单元,用于代码的复用.信息影藏和组合调用. function a(){} 函数对象Function Lit ...

  9. JavaScript入门介绍(一)

    JavaScript入门介绍 [经常使用的调试工具][w3school.com.cn在线编辑] [Chrome浏览器 开发调试工具]按F121.代码后台输出调试:console.log("t ...

随机推荐

  1. Perl的DATA文件句柄

    有太多次写完一个perl程序,需要另外新建一个文件来测试,每次觉得很繁琐,但又不得不这么做.没想到原来perl已经提供了解决方案,这就是DATA. 使用很简单,见下面这个例子: #!/usr/bin/ ...

  2. QStyle 新风格的实现

      摸索了很久,实际实现才发现很简单. 利用qt助手搜style可以发现style的实现和qapplication有关,在Qapplication里面搜到函数: void QApplication:: ...

  3. Makefile 中会在多处地方看到 FORCE

    转载:http://blog.csdn.net/wzw88486969/article/details/11739737 在内核的 Makefile 中会在多处地方看到 FORCE ,比如: # vm ...

  4. 配置apache、php、mysql之间的关系

    1.index.php文件放入/usr/local/apache2/htdocs 目录下 其中index.php里面内容为: <?php phpinfo(); $dbc= mysql_conne ...

  5. LeetCode11 Container With Most Water

    题意: Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, a ...

  6. maven-使用assembly自定义打包

    用maven管理项目引用依赖很方便,但是打包的时候如果是web包还好,会直接把依赖的jar包打到lib目录中,如果是jar包的话,依赖默认是不打入进去的 这样如果运行环境中没有依赖的jar包,就麻烦了 ...

  7. WPF 之 布局(二)

    一.Canvas  Canvas是最基本的面板,只是一个存储控件的容器,它不会自动调整内部元素的排列及大小,它仅支持用显式坐标定位控件,它也允许指定相对任何角的坐标,而不仅仅是左上角.可以使用Left ...

  8. C小加 之 随机数

    描述ACM队的“C小加”同学想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(0<N≤100),对于其中重复的数字,只保留一个,把其余相 ...

  9. spring mvc 的各种参数的绑定方式

    本文转自http://www.cnblogs.com/HD/p/4107674.html SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controller代码: ...

  10. 【阿里云产品公测】PTS压力测试WP站搜索

    [阿里云产品公测]PTS压力测试WP站搜索 作者:阿里云用户cnsjw PTS性能测试服务是一个非常非常强大的压力测试工具.可以模拟百人同时访问网站的情况,并监测ECS和RDS的各项指标,生成非常详细 ...