JavaScript学习笔记
1.什么是 JavaScript
JavaScript是一种高级的、多范式、解释型的编程语言,是一门基于原型、函数先行的语言,它支持面向对象编程、命令式编程以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式,不支持I/O(比如网络、存储和图形等),但可以由它的宿主环境提供支持。它已经由ECMA(欧洲计算机制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器支持。
(强行)翻译过来就是
1.可以在网页上实现复杂的功能,交互等
2.解释型语言
3.运行在客户端
4.面向对象语言
5.和Java没关系(这句话是怎么翻译出来的)
2.Console
在浏览器按下F12打开调出开发人员工具
选择Elements旁边的Console
输入1+1,按下回车
它会显示2
神奇吧,好像可以不用再去找计算器了
还可以试试
Math.sin(Math.PI*0.5)
“hello,world”.toUpperCase()
1===1
看看会显示什么
如果想多了解一下控制台的话,不妨访问一下下面这个博客
https://blog.csdn.net/zipack/article/details/77834224?
locationNum=9&fps=1
在VScode里
在控制台里
3.变量
var name="Ginger";
console.log(name);
这里在全局作用域中定义一个叫name的变量,内容是“Ginger”
let a=1;
console.log(a*2);
定义一个叫a的块级变量,而且赋值为1
此外,也可以定义常量,方式和C语言中类似。如
const b=666;
当然,JS里还有很多和C不一样的地方,如
var x;
x="3"+"4";
console.log(x);
像这样,输出的是34,离谱
还有更离谱的
var x;
x="3"+4+5;
console.log(x);
输出345
当我们把双引号放在最后时
x=3+4+“5”;
输出为75(先算3+4,然后同上)
3.== 和 ===
console.log(123=="123");
结果为true
因为数字123会被转化为字符串形式,即"123"
这两个当然是相等的
console.log(123==="123");
结果为false
所以===:比较严格,只要类型不匹配就返回flase
这里附加一点:
布尔型的值只有两个:false(假)和true(真)。
false的序号为0,true的序号是1。
5==true
false
if(5) 1+1
2
5==false
false
if(0) 1+1
undefined
上面是在控制台的一些结果
5非零,是真,但因为布尔型的true值是1,所以5==true仍然返回了false。
嗯,只是想提醒一下不要搞混true和非零。
4.对象
对象是一个包含相关数据和方法的集合(通常由一些变量和函数组成,我们称之为对象里面的属性和方法)
1.new一个对象
var ob1 = new Object();
var ob2 = {};
ob1 = {
name:"Ginger",
age:"18",
contact:{
phone:"13591773975",
QQ:"532015746",
}
}
ob1.contact.wechat_name="D.K.Gang_Yee" //这里新增了一个属性
console.log(ob1.contact.wechat_name);
// 或console.log(ob1["contact"]["wechat_name"]);
微信名“啪”地一下就打出来了。
感觉和结构体有点像?
但是远不止。上面列出的,都可以说是对象的属性,当加入成员函数,允许对象对资料做一些操作,这就是对象的方法。
用这个网址的一个例子。
https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Basics
var person = {
name : ['Bob', 'Smith'],
age : 32,
gender : 'male',
interests : ['music', 'skiing'],
bio : function() {
alert(this.name[0] + ' ' + this.name[1] + ' is ' + this.age + ' years old. He likes ' + this.interests[0] + ' and ' + this.interests[1] + '.');
},
greeting: function() {
alert('Hi! I\'m ' + this.name[0] + '.');
}
};
再在后面加入person.greeting(); person.bio();
会弹出两个提醒
5.数组
在C语言里学过数组,但在JS里还有一些不一样的地方。
var a = new Array;
a[0]="dog";
a[1]="cat";
a[2]="pig";
for(var i=0;i<3;i++){
console.log(a[i]);
}
如果在C里面,应该用到二维数组才可以这样表示。
但是在JS里可以直接 真·字符串的数组。
另外,JS里遍历数组有一个for in语句
for(let i in a ){
console.log(a[i]);
}
在普通的for循环遍历数组,如果有未定义的项,会输出undefined,但如果在for in语句里 ,不会输出undefined的项。
一些关于数组的语句
a.push="monkey"; //最后一项添加
a.pop(); //删除最后一项
a.reverse();//倒序一个数组
a.shift();//删除第一项
a.unshift("tiger");//第一项前添加
(开坑,未完待续)