JS学习笔记:引入方式,堵塞,调试,数据类型,数组,对象数组【诗书画唱】

JS的三种引入方式:
1.行内直接使用
2.内嵌式
3.引入外部文件
堵塞:
JS的堵塞,html页面的内容是从上到下执行的,如果html的控件没有加载完毕,你去使用它是获取不到的,就会形成js堵塞。
解决方案:
1.将js代码放在页面的最下方
2.将代码放在Window.onload(),页面加载完毕后执行的事件
onload
装载
英 ['ɒnləʊd]美 ['ɒnloʊd]
vt.装载;输入;装入(文件)
调试:
alert("内容"):普通弹出框
alert英[əˈlɜːt]美[əˈlɜːrt]
adj.警觉的; 警惕的; 戒备的; 意识到; 注意到;v.向…报警; 使警觉; 使警惕; 使戒备; 使意识到; 使认识到;n.警戒; 戒备; 警惕; 警报;
prompt("内容"):带有输入框的弹出框
prompt英[prɒmpt]美[prɑːmpt]
adj.立即; 迅速的; 及时的; 敏捷的; 准时的;v.促使; 导致; 激起; 鼓励,提示,提醒(某人说话); 给(演员)提词;n.(给演员的) 提词,提示; 提示符;
document.write("内容"):将内容输出到页面
document英[ˈdɒkjumənt , ˈdɒkjument]美[ˈdɑːkjumənt , ˈdɑːkjument]
n.文件; 公文; 文献; 证件; (计算机) 文档;v.记录,记载(详情); 用文件证明(或证实);
console.log("内容"):一般用于调试
console英[kənˈsəʊl , ˈkɒnsəʊl]美[kənˈsoʊl , ˈkɑːnsoʊl]
v.安慰; 抚慰; 慰藉;n.(机器、电子设备等的) 控制台,操纵台,仪表板;
[例句]'Never mind, Ned,' he consoled me
“没关系,内德。”他安慰我说。
数据类型:
JavaScript分为6种数据类型,5个基本数据类型和1个复杂数据类型
Java英[ˈdʒɑːvə]美[ˈdʒɑvə]
n.Java 语言(一种计算机语言,尤用于创建网站);
script英[skrɪpt]美[skrɪpt]
n.剧本; 电影剧本; 广播(或讲话等)稿; 笔迹; (一种语言的) 字母系统,字母表;v.为电影(或戏剧等)写剧本;
Number:所有的数字
String:可以使用双引号或者是单引号表示的内容
Boolean:true,false
Boolean英[ˈbuːliən]美[ˈbuːliən]
adj.布尔逻辑体系的(分别以1和0代指是和非);
Null:获取的内容为空的时候为null
函数:
JS函数分为自定义函数和系统函数。
自定义函数:
带名的函数和匿名函数。
js的函数:
1.形参和实参的参数列表是没有关系的,可以也可以不写。
2.返回值可以写,可以不写。
函数语法:
function 方法名(参数列表){
方法体
}
function英[ˈfʌŋkʃn]美[ˈfʌŋkʃn]
n.作用; 功能; 职能; 机能; 社交聚会; 典礼; 宴会; 函数;v.起作用; 正常工作; 运转;
匿名函数(函数表达式):
var s=function(参数列表){
方法体
}
variable英[ˈveəriəbl]美[ˈveriəbl]
adj.多变的; 易变的; 变化无常的; 可更改的; 可变的;n.可变情况; 变量; 可变因素;
Undefined:Undefined变量只为声明时没有被赋值的变量,变量为null。(当声明没有赋值的变量时,值为空,这个变量就是Undefined变量,即是未阐明的的变量。)
undefined英[ˌʌndɪˈfaɪnd]美[ˌʌndɪˈfaɪnd]
adj.未阐明的; 未限定的;
undefined
是全局对象的一个属性。也就是说,它是全局作用域的一个变量。undefined
的最初值就是原始数据类型undefined
。
一个没有被赋值的变量的类型是undefined。如果方法或者是语句中操作的变量没有被赋值,则会返回undefined(对于这句话持疑惑态度,请查看英文原文来理解)。
一个函数如果没有使用return语句指定返回
值,就会返回一个undefined值。
Javascript中两个等于号和三个等于号的区别(==/===)
==//表示值的比较
===//表示对象类型的比较
1、对于string,number等基础类型,==和===是有区别的。
a)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等。
b)同类型比较,直接进行“值”比较,两者结果一样。
alert('1'==1);//结果是truealert('1'===1);//结果是false
2、对于Array,Object等高级类型,==和===是没有区别的。
进行“指针地址”比较。
3、基础类型与高级类型,==和===是有区别的。
a)对于==,将高级转化为基础类型,进行“值”比较。
b)因为类型不同,===结果为false。
var a = new String('1');//定义一个string的高级类型var b = '1';//定一个基础类型字符串alert(b==a);//为truealert(b===a);//为false
// 这里没有声明y
if(typeof y === 'undefined') {
// 没有错误,执行结果为true
console.log("y is " + typeof y ) //操作台打印出的内容: y is undefined
}
复杂数据类型:数组,对象,控件。
typeof:因为javascript是弱类型的语言,在声明的时候统一使用var进行声明,并不能确定是什么数据类型,就可以使用typeof去判断其是什么数据类型。
isNaN(v):判断内容是不是数字
document.getElementById(""):id选择器,用来获取页面中的id的元素
数组声明的三种方式:
//数组1
var s=["张三",22,"男"];
//数组2
var s1=new Array("李四",22,"女");
//数组3
var s2=new Array(2);
s2[0]="王五";
s2[1]=22;
s2[2]='男';
//遍历数组的三种方式
1普通for循环
for(var i=0;i<s2.length;i++){
alert(s2[i]);
}
2for...in...
for(var i in s2){
alert(s2[i]);
}
3 for...of...
for(var i of s2){
alert(i);
}
array英[əˈreɪ]美[əˈreɪ]
n.大堆; 大群; 大量; 数组; 阵列;v.布置; 排列; 配置(兵力);
JS数组:
1.数组元素可以是任意类型。
2.数组声明时的长度和赋值的内容是没有关系的。
第一种,直接创建:
var v={name:"张三",age:22,sex:'男'};
语法:
变量名={属性名:属性值,属性名:属性值,属性名:属性值}
第二种构造函数创建对象:
var v=new Object();
object英[ˈɒbdʒɪkt , əbˈdʒekt]美[ˈɑːbdʒekt , əbˈdʒekt]
n.物体; 物品; 东西; (极欲得到、研究、注意等的) 对象; 宗旨; 目的; 目标;v.不同意; 不赞成; 反对; 提出…作为反对的理由; 抗辩说;
v.name="张三";
v.age=22;
//JS对象在声明完毕只后也可以增加属性
,修改属性直接根据属性的键修改值即可,删除属性使用delete 对象名["属性名"]
//遍历对象
遍历对象的时候使用for in 进行遍历。
for( var i in a){
document.write(a[i]);}
js构造方法创建方式:
function(参数列表){
方法体
}
//构造方法:
var diannao=function(name,jiage,yanse){
this.name=name;
this.jiage=jiage;
this.yanse=yanse;
}
对象数组:
var shuzuaa=[
new diannao("惠普",888,"yellow"),
new diannao("联想",999,"green"),
new diannao("华硕",777,"blue")
];
//将每个电脑的名称遍历出来
for(var i of shuzuaa){
alert(i["jiage"]);
}