个人工作室网站设计,百度seo服务公司,清远网站开发sohu,网站底部浮动一.语法 1.javascirpt中一切#xff08;变量#xff0c;函数名和操作符#xff09;是严格区分大小写的。 2.javascript#xff08;标识符#xff09; 所谓标识符#xff0c;就是指变量#xff0c;函数#xff0c;属性的名字#xff0c;或者函数的参数。 命名规则…一.语法 1.javascirpt中一切变量函数名和操作符是严格区分大小写的。 2.javascript标识符 所谓标识符就是指变量函数属性的名字或者函数的参数。 命名规则第一个字符必须是一个字母、下划线、美元符号其它字符可以是字母、下划线、美元符号或数字。 不能把关键字保留字truefalse和null用作标识符。 3.ECMAScript标识符采用驼峰大小写格式也就是第一个字母小写剩下的每个单词的首字母大写。但是没有谁强制要求这个格式 4.注释 //单行注释/**这是多行注释*/ 5.语句 每条语句最好用一个分号结尾但是也可以省略分号。 可以把多条语句组合到一个代码块中及代码块以左花括号{开头以右花括号}结尾。 if (test) alert(test); //有效但容易出错最好不要使用if (test) { alert(test);//推荐使用} 6.关键字和保留字 7.变量 变量是松散类型的可以用来保存任何类型的数据。使用关键字var来声明变量。 var message; 像这样未经过初始化的变量会保存一个特殊的值undefined obj100 这样虽然有效但不推荐这样相当于声明了一个全局变量 二. ECMAScript有5种简单数据类型Undefined,Null,Boolean,Number和String以及1种复杂数据类型Object 1.typeof操作符:一元操作符操作数可以是变量或数字字面量用来检测给定变量的数据类型。 可能的返回值 1. undefined --- 这个值未定义 2. boolean --- 这个值是布尔值 3. string --- 这个值是字符串 4. number --- 这个值是数值 5. object --- 这个值是对象或null 6. function --- 这个值是函数。 2.Undefined类型只有一个值即特殊的undefined. var message; alert(messageundefined); //true 包含undefined值的变量与尚未定声明的变量还是不一样。 var message; //var age;alert(message); //undefinedalert(age); //产生错误 对尚未声明的变量执行typeof结果返回undefined对尚未初始化的变量执行typeof结果返回undefined var message; //var age;alert(typeof message); //undefinedalert(typeof age); //undefined 最好显示的初始化变量这样的话当typeof操作符返回undefined值时我们就知道被检测的变量没有被声明而不是尚未初始化因为没有声明的变量用typeof操作符就会直接返回undefined 3.null类型 null类型只有一个值即特殊的null. null值表示一个空对象指针typeof操作符检测null值返回“object”。 null与undefined之间的相等操作符进行比较总是返回true。 4.Boolean类型 只有两个字面值true和false这两个值与数字值不一样true不一定等于1false不一定等于0这两个字面值区分大小写。 要将一个值转换为其对应的Boolean值可以调用转型函数Boolean()。 javascript中任何的数据类型调用转型函数Boolean()总会返回一个Boolean值各种数据类型及转换规则如下: 5.Number类型 包括整数和浮点数 1.整数包括十进制八进制字面值和十六进制的字面值。 八进制字面值的第一位必须是零十六进制的字面值的前两位必须是0x。 在进行算术计算时八进制字面值和十六进制的字面值最终会转换成十进制数值。 2.浮点数 所谓浮点数值该数值中必须包含一个小数点并且小数点后必须至少有一位数字。小数点前面可以没有整数但是不推荐这样使用。 浮点数可以这样var floatNum .1;但是不推荐这样使用。 由于保存浮点数值需要的内存空间是整数值的两倍因此不失时机的将浮点数值转换为整数值。如果浮点数小数点后面没有任何数字那个这个数值就可以被作为整数值来保存同样如果浮点数本身就表示一个整数如1.0那么该值也会被转换为整数。 对于极大和极小数值使用科学计数法。浮点数值最高精度是17位小数。 Number.MAX_VALUE整数的最大值 Number.MIN_VALUE整数的最小值 如果计算得到一个超出javascript数值范围的值那么这个数值自动转换为特殊的Infinity,如果某次返回正的或负的Infinity值那么该值将无法继续参与下一次计算 要想确定一个数值是不是有穷的可以使用isFinite(number )函数如果 number 是有限数字或可转换为有限数字那么返回 true。否则如果 number 是 NaN非数字或者是正、负无穷大的数则返回 false。 访问Number.NEGATIVE_INFINITY和Number.POSITIVE_INFINITY可以得到正和负的Infinity的值所以其实这两个属性分别保存着-Infinity和Infinity 3. NaN NaN特点1任何涉及到NaN的操作都会返回NaN2NaN与任何值都不相等其中包括NaN本身 。 isNaN()这个函数接受一个参数该参数可以是任何类型而此函数会帮我们确定这个参数是否“不是数值”不是数值返回true。 isNaN()这个函数接受一个参数会尝试将这个值转换为数值。任何不能被转换为数值的值都会导致该函数返回true。 alter(isNaN(NaN));//true alter(isNaN(10))//false alter(isNaN(10))///false alter(isNaN(red))//true alter(isNaN(true))//true 4.数值转换 有三个函数可以将非数值转换为数值Number()parseInt()parseFloat() 转型类型Number()可以用于任何数据类型parseInt()parseFloat()专门用于将字符串转换成数值。 Number()函数的转换规则如下 1如果是Boolean值true和false将分别被转换为1和02如果是是数字值只是简单的传入和返回3如果是null值返回04如果是undefined返回NaN5如果是字符串遵循下列规则 如果字符串中只包含数字则将其转换为十进制数值级“1”会变成1“123”会变成123而“011”会变成11前面的0被忽略了 如果字符串中只包含有效的浮点格式如“1.1”则将其转换为对应浮点数值同样也会忽略前导零 如果字符串中只包含有效的十六进制格式例如“0xf”则将其转换为相同大小的十进制整数值 如果字符串是空的不包含任何字符则将其转换为0 如果字符串中包含除上述格式之外的字符则将其转换为NaN6如果是对象则调用对象的valueOf()方法然后依照前面的规则转换返回的值。如果转换的结果是NaN则调用对象的toString()把各种数据类型转换为数值确实有点复杂。下面是几个具体例子var num1 Number(Hello world!); //NaNvar num2 Number(); //0var num3 Number(000011); //11var num4 Number(true); //1 parseInt() parseInt()函 数在转换字符串时它会忽略字符串前面的空格直至找到第一个非空格字符。 如果第一个字符不是数字字符或者负号parseInt()就会返回NaN也就是说用parseInt()转换空字符串会返回NaN(Number()对空字符串返回0)。 如果第一个字符是数字字符parseInt()会继续解析第二个字符直到解析完所有后续字符或者遇到了一个非数字字符。 例如“123blue”会被转换为 1234因为“blue”会被完全忽略。类似地“22.5”会被转换成22因为小数点并不是有效的数字字符。 如果字符串中的第一个字符是数字字符parseInt()也能够识别出各种整数格式即十进制、八进制、十六进制。也就是说如果字符串以 “0x”开头且后跟数字字符就会将其当作一个十六进制整数如果字符串以“0”开头且后跟数字字符则将其当作一个八进制数或十进制来解析。 为了更好地理解parseInt()函数的转换规则下面给出了一些例子 var num1 parseInt(1234blue); //1234var num2 parseInt(); //NaNvar num3 parseInt(0xA) //10(十六进制)var num4 parseInt(22.5); //22var num5 parseInt(070); //56或70(八进制)var num6 parseInt(70); //(70)十进制var num7 parseInt(0xF) //15(十六进制) parseInt()解析“070”导致上述困惑ECMAScript也为这个函数提供了第二个参数转换时使用的基数即多少进制。 指定基数会影响到转换的输出结果。 var num1 parseInt(AF, 16); //175var num2 parseInt(AF); //NaN 这个例子中的第一个转换成功了而第二个则失败了。差别在于第一个转换传入了基数明确告诉parseInt()要解析一个十六进制格式的字符串而第二个转换发现第一个字符不是数字字符因此就自动终止了。 var num1 parseInt(10, 2); //2var num2 parseInt(10, 8); //8var num3 parseInt(10, 10); //10var num4 parseInt(10, 16); //16 parseFloat() parseFloat()也是从第一个字符位置0开始解析每个字符一直解析到字符串末尾或解析到遇见一个无效的浮点数字字符为止。也就是说字符串中的第一个小数点是有效的而第二个小数点是无效的因此它后面的字符串将被忽略。举例来 说“22.34.5”将会被转换为22.34。 除了第一个小数点有效之外parseFloat()与parseInt()的第二个区别在于它始终都会忽略前导零。由于parseFloat()只解析十进制值因此 它没有用第二个参数指定基数的用法。十六进制格式的字符串始终会被转换为0。最后还要注意一点如果字符串包含的是一个可解析为整数的数没有小数点或者小数点后面都是 零parseFloat()会返回整数。以下是使用parseFloat()转换数值的几个典型示例 var num1 parseFloat(1234blue); //1234var num1 parseFloat(0xA); //0var num1 parseFloat(22.5); //22.5var num1 parseFloat(22.34.5); //22.34var num1 parseFloat(0908.5); //908.5var num1 parseFloat(3.125e7); //31250000 6.String类型 用双引号表示的字符串和用单引号表示的字符串完全相同任何字符串长度都可以通过其length属性取得。 字符串的特点:字符串一旦创建它们的值就不能改变。要改变某个变量保存的字符串首先要销毁原来的字符串然后再用一个包含新值的字符串填充该变量。 toString()-转换为字符串 数值的toString()方法把一个数值转换为字符串返回该数值的字符串表现形式。可以传入一个基数可以以十进制八进制和十六进制的格式返回数值的字符串表现形式。 字符串toString()方法返回字符串的一个副本。 转换为字符串方法toString(),数值、布尔值、对象和字符串都有些方法但null和undefined值没有此方法 在不知道值为null或undefined值时可以使用转型函数String()这个函数能够将任何类型的值转换为字符串String()函数遵循转换规则1). 如果值有toString()方法则调用该方法没有参数返回相应的结果2). 如果值是null则返回null3). 如果值为undefined则返回undefined 7.Object类型 ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过new操作符来创建。在ECMAScript中如果不能构造函数传递参数则可以省略后面的那一对圆括号 如下所示 var obj new Object();var obj new Object;//但一般不推荐这种写法。 Object的每个实例都具有下列属性和方法 constructor保存着用于创建当前对象的构造函数 hasOwnProperty(propertyName)用于检查给定的属性在当前对象实例中而不是在实例的原型中是否存在 isPrototypeOf(object)用于检查传入的对象是否是另一个对象的原型 propertyIsEnumerable(propertyName)用于检查给定的属性是否能够使用for-in语句来枚觉。 toLocalString()返回对象的字符串表示该字符串与执行环境的地区对应。 toString()返回对象的字符串表示。 valueOf()返回对象的字符串,数值布尔值表示返回指定对象的原始值。 每个JavaScript固有对象的 valueOf 方法定义不同。 对象返回值Array数组的元素被转换为字符串这些字符串由逗号分隔连接在一起。其操作与 Array.toString 和 Array.join 方法相同。BooleanBoolean 值。Date存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。Function函数本身。Number数字值。Object对象本身。这是默认情况。String字符串值。Math 和 Error 对象没有 valueOf 方法。 三.函数 一. 函数使用function关键字来声明后跟一组参数及函数体。 function sayHi(name,message){ alter(helloname,message); } 函数的调用:通过函数名来调用后面加一对圆括号和参数。 sayHi(Nike,How are you today?); 函数中return语句之后的任何代码都永远不会执行 return 语句也可以不带有任何返回值这种情况 下函数在停止执行后将返回undefined值 function sum(num1,num2){ return num1num2; alter(Hello);//永远不会被执行 } sum(5,10); 二.javascript的函数参数 javascript的函数参数与其它语言有所不同它不介意传进来多少个参数也不介意传进来的参数是什么数据类型。原因是javascript的函数参数在内部是用一个数组来表示函数接收到的始终是这个数组不关心数组中包含哪些参数不包含参数也没关系。在函数体内可以通过arguments对象来访问这个参数数组从而获取传递给函数的每一个参数。 可以使用方括号语法访问他的每个参数arguments[0]第一个参数arguments[1]第二个参数。...... 通过arguments对象的length属性可以获得有多少个参数传递给了函数没有传递值的命名参数将自动被赋予undefined值ECMAScript中的所有参数传递的都是值不可能通过引用传递参数 上面的函数可以重写不显示地使用命名参数 function sayHi(){ alter(helloarguments[0],arguments[1]);//arguments[0]对应与name参数 } 命名参数可以与arguments对象一同使用arguments的值永远与对应的命名参数的值同步。修改命名参数的值不会改变arguments的值修改arguments的值会改变命名参数的值。 function doAdd(num1,num2){ arguments[1]10; alert(arguments[0]num2);//10} doAdd(0,20); ECMAScript所有参数传递的都是值不可能通过引用传递参数 三. ECMAScript函数没有重载 重载是指定义两个名字相同的函数只要这两个定义的签名接受参数的类型和数量不同即可。 ECMAScript中两个名字相同的函数后定义的函数覆盖了先定义的函数。 function addSomeNumber(num){ return num100; } function addSomeNumber(num){ return num200; } var result addSomeNumber(100); //300 注意与其它语言不同ECMAScript没有为整数和浮点数值分别定义不同的数据类型Numer类型可用于表示所有数值 ECMAScript中无须指定函数的返回值因为任何ECMAScript函数都可以在任何时候返回任何值 ECMAScript函数中函数参数是以一个包含零或多个值的数组的形式传递的 可以向ECMAScript函数传递任意数量的参数并且可以通过arguments对象来访问这些参数转载于:https://www.cnblogs.com/qinxuemei/p/4017981.html