一、基本情况
#1、介绍
JavaScript是一门解释性的脚本语言,主要用来给HTML网页增加动态功能。
通常的js是运行在浏览器环境下的,可以帮助我们去控制页面,实现丰富的功能。会有dom和bom的api去操作html文档和浏览器的一些功能。
nodejs是运行在计算机环境下的。语法一样,但是因为环境是计算机,他当然不能操作dom和bom。因为压根就没有,但是他能操作文件,能操作数据库,他其实是一门后端的编程语言。
但是nodejs的出现个js提供了蓬勃的生命力,让js更加强大,比如现在流行的一下编程模式,都需要nodejs的支持。
#2、JS解释器
无论是node还是各大浏览器,都需要有解释JS代码的引擎,参考下表浏览器使用的JS解释器
- Mozilla -- Spidermonkey 火狐
- Chrome -- v8 谷歌
- Safari -- JavaScriptCore 苹果
- IE、Edge -- Chakra ie
- node -- v8 nodejs
#3、js哪里可以执行
(1)放在html标签之中
<body>
//中间放页面标签
//放在body的结束标签之前
<script type="text/javascript">
document.write('<h1>123</h1>')
</script>
</body>
(2)引入外部的js
<body>
//中间放页面标签
//放在body的结束标签之前
<script src="./index.js"></script>
</body>
#二、数据类型
弱类型自动推断类型
数字(number)
字符串 (string)
布尔型 (boolean)
null是有值但为空,undefined是只是被申明,未赋值
空(null)
未定义( undefined)
#三、定义变量
弱类型,不需要申明这个变量的类型,统一用 var
var num = 10;
var money = 1.2;
//字符串单引号和双引号都行,和java对比
var str = 'str';
var str2 = "str2";
var nul = null;
var flag = true;
//压根就没有定义叫undefined
//数组和对象
var arr = [];
var obj = {};
因为var有一些弊端,今天就说一个,如果前边定义了一个变量,后边再次定义,就会覆盖,这样会有问题,所有在ES6语法当中新增了let和const两个关键字来定义变量,除此之外还有作用域的问题,有兴趣可以去研究。
var num = 3;
var num = 4;
//前边的值会被后边的覆盖
//你们不用管
//let 和 const 定义的变量不能不覆盖,不能重复定义。
let num = 3;
let num = 4;
//直接会报错
//cosnt定义的叫常量,定义之后的数据不能被修改
const num = 3;
num = 4;
//直接会报错
#四、数组(array)
#1、定义的方式
#(1)使用方法调用
var arr = Array();
//Array 是个函数,猜一猜他的返回值就是个空数组
#(2)使用new关键字
var arr = new Array();
//js里函数可以当类使用
#(3)使用json数组的方式,字面量,个人推荐
var arr = [];
注:js中初始化数组不需要初始化长度
#2、赋值的方式
#(1)定义之后去赋值
arr[0] = 123;
arr[1] = 234;
#(2)定义的时候赋值
//这样当然方便
var arr = [123,234];
#五、方法
js和java定义方法对比
js对参数要求极其灵活,java极其严格
js不需要声明数据类型,java必须声明数据类型
public void getName(){
System.out.println("123");
}
function getName(){
}
//这种方法没有参数没有返回值,右不打印没用让我们看见就毫无意义
function puls(){
var a = 1 +1;
}
puls()
undefined
//参数是你要处理的数据,
//返回值就是处理的结果
//返回值可以给
function plus(num1,num2){
return num1 + num2;
}
plus(23,34)
57
//可以使用另一个变量去接收返回值并进行利用
var num = plus(33,44)
num
77
//方法会在遇到return之后停止运行
function plus(num1,num2){
console.log("before")
return num1 + num2;
console.log("after")
}
plus(34,45)
VM688:2 before
79
return
1终止当前的方法,不在继续往下执行
2、会将return之后的结果,作为方法执行的结果返回出去
返回出去有什么用,别的变量就能拿到这个值,并进行利用
参数可以没有,可以有一个或多个
返回值要么没有,要么只有一个
#六、 对象(object)
对象是js里最灵活的。
#1、定义空对象
#(1)使用方法调用
var obj = Object();
//Array 是个函数,猜一猜他的返回值就是个空数组
#(2)使用new关键字
var obj = new Object();
//js里函数可以当类使用
#(3)使用json对象的方式,个人推荐
var obj = {};
#(4)自定义对象类型,有点高级,了解
这一点很是灵活,function定义的函数,既能直接调用,也可以像类一样使用new关键字来生成。也就是函数既可以当做普通函数,也能当做构造函数。
其中要注意,要想给new出来的对象添加属性或方法,必须使用this关键字,不写不行。
命名规范和java一样,首字母大写,驼峰式命名。
function User(name){
this.name = name;
}
var user = new User('wusanshui');
console.log(user.name)
#2、给对象添加属性和方法
#(1)定义了对象之后
obj.name = 'zhangsan';
obj.age = 18;
onj.eat = function(){
console.log(" I am eating! ")
}
#(2)定义类的时候
//直接用json对象写一个对象出来
var user = {
name: 'zhangsan',
age: 10,
eat: function(){
console.log("i am eating!");
}
}
#(3)自定义类的时候
一定要注意和java的区别
function User(name){
this.name = name;
this.age = 18;
this.eat = function(){
console.log("I am eating!")
}
}
var user = new User('wusanshui');
//new 出来的对象自然而然就拥有这些属性和方法
#3、获取对象的属性的方法
#(1)使用.
console.log(user.name);
调用方法
user.eat();
#(2)使用[]
console.log(user['name']);
调用方法
user['eat']();
#六、判断和循环
和java里的一模一样,简单写一下就行了
#1、if语句
如果条件是一个值:
如果是 0 ‘’ null undefined false 都是false
{} [] 非零的数字 字符串 都是真
var flag = true;
if(flag){
alert(true)
}else{
alert(false)
}
#2、switch语句
var m = 2;
var x;
switch (m) {
case 0:x="今天是星期日";
break;
case 1:x="今天是星期一";
break;
case 2:x="今天是星期二";
break;
}
console.log(x);
#3、循环数组
let cars = [ '兰博基尼','CRV','卡宴',"奔驰是傻逼",'bwm' ];
for (var i=0;i<cars.length;i++)
{
console.log(cars[i]);
}
#4、遍历对象属性
注意:获取对象属性的时候可以用. 也可以用[key]
var options = {
name: 'zhangsan',
age: 10
}
for(var attr in options){
console.log(attr)
//正确
console.log(options[attr])
//错误
console.log(options.attr)
}
标签:function,01,console,name,JavaScript,基础,js,var,log
From: https://blog.csdn.net/qq_73376107/article/details/145058804