javascript
记下一些知识。。。。。
七种数据类型
undefined
(未定义), null
(空),boolean
(布尔型),string
(字符串),symbol
(符号),number
(数字),和object
(对象)。
使用关键字var
,声明一个变量
当 JavaScript 中的变量被声明的时候,程序内部会给它一个初始值undefined
。当你对一个值为undefined
的变量进行运算操作的时候,算出来的结果将会是NaN
,NaN
的意思是"Not a Number"。当你用一个值是undefined
的变量来做字符串拼接操作的时候,它会输出字符串"undefined"
。
在var firstName = "Charles"
中,你可以使用firstName[0]
来获得第一个位置上的字符。
在JavaScript中,你可以使用typeof
运算符确定变量的类型或值
数组
在 JavaScript 中,字符串
的值是 不可变的,这意味着一旦字符串被创建就不能被改变。数组可包含不同类型的数据
一个简单的方法将数据添加到一个数组的末尾是通过push()
函数。.push()
接受把一个或多个参数,并把它“推”入到数组的末尾。
.pop()
函数用来“抛出”一个数组末尾的值。我们可以把这个“抛出”的值赋给一个变量存储起来。换句话说就是.pop()
函数移除数组末尾的元素并返回这个元素。
.shift()
的工作原理就像.pop()
,但它移除的是第一个元素,而不是最后一个,返回移除的元素值
.unshift()
函数用起来就像.push()
函数一样, 但不是在数组的末尾添加元素,而是在数组的头部添加元素。
变量
在 JavaScript 中,作用域涉及到变量的作用范围。在函数外定义的变量具有 全局 作用域。这意味着,具有全局作用域的变量可以在代码的任何地方被调用。在一个函数内声明的变量,以及该函数的参数都是局部变量,意味着它们只在该函数内可见。
function myTest() { var loc = "foo"; console.log(loc); } myTest(); // 打印出 "foo" console.log(loc); // loc 没有定义
这些没有使用var
关键字定义的变量,会被自动创建在全局作用域中,形成全局变量。当在代码其他地方无意间定义了一个变量,刚好变量名与全局变量相同,这时会产生意想不到的后果:原来的值会被覆盖.又或者称为一个程序中有可能具有相同名称的局部变量 和全局变量。在这种情况下,局部
变量将会优先于全局
变量
var someVar = "Hat"; function myFun() { var someVar = "Head"; } myFun(); console.log(someVar);//"Head" 因为被覆盖了
函数
在函数没有return
语句的情况下,当你调用它时,该函数会执行内部代码,返回的值是undefined
。
运算符
严格相等运算符(===
)是相对相等操作符(==
)的另一种比较操作符。与相等操作符不同的是,它会同时比较元素的值和数据类型
。
严格不相等运算符(!==
)与全等运算符是相反的。这意味着严格不相等并返回false
的地方,用严格相等运算符会返回true
,反之亦然。严格相等运算符不会转换值的数据类型。
对象
对象名.属性 可以访问对象属性,若该属性不存在,可通过此增加属性:
myDog.bark="woof";
删除对象属性
delete myDog.tails;
提示:属性名称中如果有空格,必须把属性名称用单引号或双引号包裹起来。
第二种访问对象的方式就是中括号操作符([]
),如果你想访问的属性的名称有一个空格,这时你只能使用中括号操作符([]
)。
中括号操作符的另一个使用方式是用变量来访问一个属性。当你需要遍历对象的属性列表或查表时,这种方式极为有用。
可以用.hasOwnProperty(propname)
方法来检查对象是否有该属性
myObj.hasOwnProperty("top"); // true
parseInt()
函数
parseInt()
函数解析一个字符串返回一个整数.如果字符串参数的第一个字符是字符串类型的,结果将不会转换成数字,而是返回NaN
.
parseInt()
函数解析一个字符串并返回一个整数。它同时可接受第二个参数,一个介于2和36之间的整数,表示字符串的基数。