<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
'use strict';//使用严格检查模式
// str='hello hello';如果没有用var关键字定义,则在控制台报not available
var str='hello hello';
console.log(str);
//打印具体每个字符,类似于数组,即变量名[下标]
console.log(str[0]);//结果为h
console.log(str[1]);//结果为e
str.toUpperCase();//全部变大写 HELLO HELLo
str.toLowerCase();//全部变小写 hello hello
//indexOf():返回字串首字母的下标
str.indexOf('hello');//返回0
str.indexOf('Hello');//没有找到字串,则返回-1
str.substring(0,5);//从索引0开始到4(不包括4),返回helle
str.substring(3);//从索引3开始到结束,返回"lo hello"
//==与===
true ==1;//返回true
true === 1;//返回false
NaN === NaN;//返回false
NaN === 1;//返回false
isNaN(NaN);//返回true
//== 比较,它会自动转换相同的类型再比较,但是有时候比较奇葩,返回的值有时候有些反常
//=== 比较,它不会自动进行数据类型转换如果类型不一致,就返回false,然后再比较数值
//注意一点,NaN(属于number类型)和任何值比较都不相等(包括它自己本身在内)
//但是NaN可以通过isNaN()函数进行判断
//null与undefined
/*null代表的是,一个空值,他与'',0不同,0代表一个数值,''代表长度为0的字符串
这样看来,两者的数据类型不一样。
undefined代表还没有赋值,即值未定义
*/
//数组:两种定义
var arr1 = [1,'hi',null];
arr1.length = 4;//给数组长度赋一个值,将会导致数组大小的变化
arr1;//arr1变为[1,'hi',null,empty]
arr1.length = 2;
arr1;//arr1变为[1,'hi']
arr1.indexOf(1);//返回1对应的索引0
arr1.slice(1);//从索引1开始到结束,返回["hi"]
arr1.slice(0,2);//从索引0到2(但不包括2),返回
arr1.unshift('A','b');//返回长度4,因为之前改变了数组昌都,改成了2,unshift:往数组头部增加元素
arr1;//返回['A','b','hi',null]
arr1.shift();//返回4 shift:删除头部第一个元素,返回‘A’,可以链式删除,即连续几个shift()
arr1.shift();arr1.shift();arr1.shift();
arr1.shift();//即使数组空了,也不会报空指针异常,而是undefined
var arr2 = new Array('a','b','d','c');
arr2.sort();//从小到大排序
arr2;//返回['a','b','c','d']
arr2.reverse();//reverse反转元素
arr2;//返回['d','c','b','a']
var arr3 = ['apple','peach','banana','orange']
//从索引1开始删除3个元素,然后再添加两个元素
arr3;// ["apple", "peach", "banana", "orange"]
arr3.splice(1,3,'pear','grape');//返回删除的元素 ["peach", "banana", "orange"];
arr3;// ["apple", "pear", "grape"]
//只删除,不添加
arr3.splice(1,1);//返回["pear"]
//只添加,不删除
arr3.splice(1,0,'mango','strawberry');//返回[],因为没有删除任何元素
/*数组格式:[元素1,元素2,...,]
数组的元素类型任意;
数组可以改变长度大小
数组的indexOf(),slice()分别类似于String的indexOf(),substring()方法,
*/
//对象(因为JavaScript是动态语言,可以随意添加或删除某一属性)
var dog = {
name: '旺旺',
weight: '7kg',
age: 2
}
//获取对象属性,对象。属性名
dog.age;//2
dog.name;//旺旺
var person = {
age: 3
}
person.name = '张三';//返回张三
person.height = 178;//新增一个height属性
delete person.name;//删除name属性,返回true
person.name;//undefined
delete person.sex;//删除一个不存在的属性也不会报错,返回true
//判断某属性是否属于某对象,用hasOwnProperty()方法
person.hasOwnProperty('age');//true
person.hasOwnProperty('sex');//false
</script>
</body>
</html>
控制台输出如下:
hello hello
day01.html?_ijt=45cdacbqopmku311p2crusd8n:14 h
day01.html?_ijt=45cdacbqopmku311p2crusd8n:15 e
str.toUpperCase();
"HELLO HELLO"
str.toLowerCase();
"hello hello"
str.indexOf('hello');
0
str.indexOf('Hello');
-1
str.substring(0,5);
"hello"
str.substring(3);
"lo hello"
true ==1;
true
true === 1;
false
NaN === NaN;
false
NaN === 1;
false
isNaN(NaN);
true
var arr1 = [1,'hi',null];
undefined
arr1.length = 4;
4
arr1
(4) [1, "hi", null, empty]
arr1.length=2
2
arr1
(2) [1, "hi"]
arr1.indexOf(1)
0
arr1.slice(1);
["hi"]
arr1.slice(0,2);(2) [1, "hi"]
undefined
arr1.slice(0,2);
(2) [1, "hi"]
arr1.unshift('A','b');
4
arr1;
(4) ["A", "b", 1, "hi"]
arr1.shift();
"A"
arr1.shift().shift().shift();
VM270:1 Uncaught TypeError: arr1.shift(...).shift is not a function
at <anonymous>:1:14
(anonymous) @ VM270:1
arr1.shift().shift()
VM277:1 Uncaught TypeError: arr1.shift(...).shift is not a function
at <anonymous>:1:14
(anonymous) @ VM277:1
arr1.shift();
"hi"
arr1.shift();
undefined
arr1.shift();
undefined
var arr2 = new Array('a','b','d','c');
undefined
arr2.sort();
(4) ["a", "b", "c", "d"]
arr2.reverse();
(4) ["d", "c", "b", "a"]
var arr3 = ['apple','peach','banana','orange']
undefined
arr3;
(4) ["apple", "peach", "banana", "orange"]
arr3.splice(1,3,'pear','grape');
(3) ["peach", "banana", "orange"]
arr3;
(3) ["apple", "pear", "grape"]
arr3.splice(1,1);
["pear"]
arr3.splice(1,0,'mango','strawberry');
[]
var dog = {
name: '旺旺',
weight: '7kg',
age: 2
}
undefined
dog.age;
2
dog.name
"旺旺"
var person = {
age: 3
}
undefined
person.name = '张三';
"张三"
person.height = 178
178
delete person.name;
true
person.name;
undefined
delete person.sex;
true
person.hasOwnProperty('age');
true
person.hasOwnProperty('sex');
false