We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
区分大小写
标识符
注释
//单行注释
/*
*多行
*注释
*/
切换到严格模式:
"use strict";
用var定义变量
var message="Hi"; message=100; //有效但不推荐
var定义的变量仅在作用域中有效。
如:在函数中定义的变量,退出函数后,该变量将被摧毁。
定义全局变量——省略var
function test() { message="hi"; //message为全局变量 } test(); //调用函数,创建变量 alert(message); //有效
具有动态性
简单数据类型:Undefined、Null、Boolean、Number、String
复杂数据类型:Object
Object本质上由一组无序的名值对组成
返回值为变量的数据类型
var message="something"; alert(typeof message); // "string" alert(typeof(message)); // "string" alert(typeof 95); //"number"
var声明变量后,未对其做初始化时,该变量为Undefined。
var message; //默认取得undefined值 //不声明变量age alert(message); //undefined alert(age); //错误 alert(typeof message); //undefined alert(typeof age); //undefined
用typeof,不论是否声明变量,都会返回undefined值。
表示一个空对象指针,用typeof检测null值时,会返回为“object”。
当一个变量要用于保存对象时,应将其初始化为null。可以用car!=null检查它是否已经保存了一个对象了。
null==undefined,会返回true。
True和False不是Boolean的值,只是标识符。
其他数据类型可转化成boolean值。
var message="hello"; var message_Boolean=Boolean(message);
可以表示十进制
var intNum=55; //十进制
可以表示八进制——第一位为0
var octalNum1=070; //八进制,解析为十进制的56 var octalNum2=079; //无效的八进制,解析为79 var octalNum3=08; //无效的八进制,解析为8
可以表示十六进制——前面为0x
var hexNum1=0xA; //十六进制,解析为十进制的10
可以表示浮点数、极大极小数
var floatNum1=1.1; var floatNum2=3.15e7; //相当于31500000
浮点数在计算时会出现误差,如0.1+0.2=0.300000000004。
因此不能用其做判断。(但如果如0.05+0.25=0.3则可以)
若数值小雨5e-324,大于1.79e308则会转化成-Infinity(负无穷)或Indinity(正无穷)。且不能参加计算。 使用**isFinite()**函数,若位于最大最小之间,则返回true。
NaN:表示非数值。 用**isNaN()**函数判断是否可转化为数值。
数值转换:可以把非数值转化为数值:Number()、parseInt()、parseFloat().
第一个适用于任何类型,后两个专用于字符串->数值。
如果是转化的是对象,则调用对象的valueOf()方法,如果返回NaN,则调用toString()方法。
var num1=Number("hello1234"); //NaN var num2=Number("070"); //70 var num3=Number("true"); //1 var num4=parseInt("123blue"); //123 var num5=parseInt("070"); //可能是70,可能是八进制56 var num6=parseInt("070",8); //56 var num7=parseFloat("0908.5"); //908.5 var num8=parseFloat("22.34.5"); //22.34
parseFloat()只能解析成十进制。他会始终忽略第一个0,且只有第一个小数点有效。
可以用单引号,也可以用双引号。
字符串长度可由length得到。如:text.length
把一个值转换成字符串:toString
var age=11 var ageToString=age.toString(); //11变为字符串 //可以以任何进制返回 var age.toString(2); //返回11的二进制 var age.toString(16); //16进制
若为null或者undefined,则需要使用String来转为字符串
var value1=null; var value2; var value3=true; alert(String(value1)); //null alert(String(value2)); //undefined alert(String(value3)); //true
创建
var o=new Object()
object拥有以下属性和方法
hasOwnProperty(name) 是否存在name这个属性
isPrototypeOf(object1) object1是否为该对象的原型
propertyIsEnumerable(name) name是否可以使用for-in语句来枚举
toLocaleString() 返回对象的字符串表示。
操作符为 ~
var num1=25 var num2= ~num1 //num2=-26
~ :操作数的负值,再减一(即32位数的反码)
var num1=25 var num2= ~num1-1 //num2=-26
因为按位非操作在最底层,执行速度更快
操作符为&
1与1为1,其他都为0
例如:25&3=1
操作符为|
0或0为0,其他都为1
例如:25|3=27
操作符为^
0异或1为1,1异或1为0,0异或0为0
例如:25&3=26
左移,以0填充
var old=2; var new=old << 5; //左移5位
右移
var old=2; var new=old >> 5; //右移5位
var old=2; var new=old >>> 5; //右移5位
alert(!12345) //false alert(!"blue") //false
#####逻辑与&&
字符串比较时,比较的是两个字符串中对应位置的字符的编码值大小
var result="Brick"<"alphabet"; //true //因为大写的B为66,小写的a为97 //都转换成小写比较 var result="Brick".toLowerCase()<"alphabet".toLowerCase; //false
===:只在两个操作数未经数据转换就相等的情况下返回true
"55"==55 //true "55"===55 //false "55"!=55 //false "55"!==55 //true
var num=(5,1,4,8,0) //num=0,返回最后一项
####语句
相较与for的更精准语句,用来枚举对象的属性
for(var propName in window){ document.write(propName); } //每次循环将window的一个属性名赋值给propName
使用label可以在代码中添加标签
start:for(var i=0;i<count;i++) { alert(i) } //这里的start为标签名,可以被break和continue引用。
outermost: for(……) { …… if() break outermost; //continue outermost }
将代码的作用域设置到一个特定对象中
//把 var hostName=location.hostname; var url=location.href; //简化为 with(location) { var hostName=hostname; var url=href; }
function name(arg) { …… } function doAdd() { if(arguments.length==1) { alert(arguments[0]+10) } if(arguments.length==2) { alert(arguments[0]+arguments[1]) } }
函数没有重载,同时定义是,属于最后定义的函数
The text was updated successfully, but these errors were encountered:
Ogurimuio
No branches or pull requests
JavaScript基本概念
基本语法
区分大小写
标识符
注释
//单行注释
/*
*多行
*注释
*/
切换到严格模式:
变量
用var定义变量
var定义的变量仅在作用域中有效。
如:在函数中定义的变量,退出函数后,该变量将被摧毁。
定义全局变量——省略var
数据类型
具有动态性
简单数据类型:Undefined、Null、Boolean、Number、String
复杂数据类型:Object
Object本质上由一组无序的名值对组成
typeof操作符
返回值为变量的数据类型
Undefined
var声明变量后,未对其做初始化时,该变量为Undefined。
用typeof,不论是否声明变量,都会返回undefined值。
Null
表示一个空对象指针,用typeof检测null值时,会返回为“object”。
当一个变量要用于保存对象时,应将其初始化为null。可以用car!=null检查它是否已经保存了一个对象了。
null==undefined,会返回true。
Boolean
True和False不是Boolean的值,只是标识符。
其他数据类型可转化成boolean值。
Number
可以表示十进制
可以表示八进制——第一位为0
可以表示十六进制——前面为0x
可以表示浮点数、极大极小数
浮点数在计算时会出现误差,如0.1+0.2=0.300000000004。
因此不能用其做判断。(但如果如0.05+0.25=0.3则可以)
若数值小雨5e-324,大于1.79e308则会转化成-Infinity(负无穷)或Indinity(正无穷)。且不能参加计算。 使用**isFinite()**函数,若位于最大最小之间,则返回true。
NaN:表示非数值。 用**isNaN()**函数判断是否可转化为数值。
数值转换:可以把非数值转化为数值:Number()、parseInt()、parseFloat().
第一个适用于任何类型,后两个专用于字符串->数值。
如果是转化的是对象,则调用对象的valueOf()方法,如果返回NaN,则调用toString()方法。
parseFloat()只能解析成十进制。他会始终忽略第一个0,且只有第一个小数点有效。
String
可以用单引号,也可以用双引号。
字符串长度可由length得到。如:text.length
把一个值转换成字符串:toString
若为null或者undefined,则需要使用String来转为字符串
Object
创建
object拥有以下属性和方法
hasOwnProperty(name) 是否存在name这个属性
isPrototypeOf(object1) object1是否为该对象的原型
propertyIsEnumerable(name) name是否可以使用for-in语句来枚举
toLocaleString() 返回对象的字符串表示。
数据操作
按位非(NOT)
操作符为 ~
~ :操作数的负值,再减一(即32位数的反码)
因为按位非操作在最底层,执行速度更快
按位与(AND)
操作符为&
1与1为1,其他都为0
例如:25&3=1
按位或(OR)
操作符为|
0或0为0,其他都为1
例如:25|3=27
按位异或(XOR)
操作符为^
0异或1为1,1异或1为0,0异或0为0
例如:25&3=26
移位
左移,以0填充
右移
逻辑非!
逻辑或||
#####逻辑与&&
>< 字符串比较
字符串比较时,比较的是两个字符串中对应位置的字符的编码值大小
相等和不等 ==和!=
全等和不全等 ===和!==
===:只在两个操作数未经数据转换就相等的情况下返回true
逗号赋值
####语句
for-in语句
相较与for的更精准语句,用来枚举对象的属性
label语句
使用label可以在代码中添加标签
with语句
将代码的作用域设置到一个特定对象中
函数
函数没有重载,同时定义是,属于最后定义的函数
The text was updated successfully, but these errors were encountered: