CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16
JavaScript学习笔记(1)------一些基础知识
前言/背景
学习一门新的技术,慢慢来,才能快
1.JS组成:
①ECMAScript2015----ES6 JavaScript语法
②DOM 页面文档对象模型
③BOM浏览器对象模型
2.JS基本数据类型有
number
string (外双内单,外单内双可以实现引号的嵌套)
boolean(布尔类型)
null 空值
undefined
symbol
3.html、js、css注释方式
html注释<!-- --!>
Js注释 //
css注释 /**/
4.可以代替false的值:
①false
② +0
③ -0
④undefined
⑤null
⑥NAN(Not a Number)
⑦ “”空字符串(“”不等于“ ”,其中 “ ”也代表有字符串,为true)
5.自增++
b=a++ 先赋值后自增 a初始值为1时,b=1,a=2
b=++a 先自增后赋值
6.var和let区别
(1)var有变量提升,let没有变量提升
举例
console.log(a)//undefined
var a=100;
//a在调用之前已经被声明,只是没有被初始化
(2)var多次声明同一个变量,会进行变量覆盖,但是let同一个变量只允许声明一次,重复声明会报错
举例
var a=100;
var a=200;
a console.log(a) //输出 a为200
举例
let a=100;
let a=200;
console.log(a) //会报错
7.什么是函数 function
- function是被设计为执行特定任务的代码块
- 函数可以把具有相同或相似逻辑的代码包裹起来,通过函数调用执行这些被包裹的代码逻辑,避免重复造轮子
8.创建函数的方法(三种):
1.使用构造器构造函数
var fn=new Function(…‘args’,‘return值(正常的函数体)’)
2.函数表达式:
var fn2=function(a,b){
return a+b;
} //不会预加载这个函数,所以调用必须放在函数表达式之后
3.函数声明(一般方法):
function 函数名(参数1,参数2…参数n){
函数体
return 返回值(可选)
}
例如: function fn3(){
} //会预加载函数
注意: 函数表达式与函数声明的区别:函数声明方式创建的函数可以在任意位置调用,但函数表达式创建的函数其调用不能放在创建函数之前,如果放在之前调用,函数是undefined,执行会有问题
9.IIFE自执行函数写法
如下三种方法:
(function(){
var a=100;
var b=200;
console.log(a+b);
})()
(function(){
var a=100;
var b=200;
console.log(a+b);
}())
+function(){
var a=100;
var b=200;
console.log(a+b);
}()
10.三目运算 三元运算符
语法:条件?条件为true的执行:条件为false的执行
var a=10
var b=20
var c;
//要求
//如果a>b,c的值就是a;如果a<b,c的值就是b。老办法是用if else,使用三目运算符的写法会简单很多
var c=a>b?a:b
//要求 如果a>b,c的值是a-b,否则的话是a+b
var c=a>b?a-b:a+b
11.变量的重复声明 复用
var 一个变量的时候,先去栈里面看有没有这个变量,如果有就直接用
var a=30;
var a;
console.log(a);
//在声明a的时候,编译器会先在同一作用域下查找,如果找到a就直接使用上次声明的变量,而忽略本次声明;
如果找不到a的情况下,才会在当前作用域下var一个a出来
12.函数的重复声明
- 变量的重复声明是无用的,不会覆盖之前同一作用域的变量,只会复用;
- 但是函数的重复声明会覆盖前面声明的同名函数和前面声明的同名变量
function fn(){
console.log(‘我是第一个fn’);
}
function fn(){
console.log(‘我是第二个fn’);
}
function fn(){
console.log(‘我是第三个fn’);
}
fn();//我是第三个fn