js原生小小总结
本文为作者原创,转载注明出处。
Day1
一、什么是JS?
==基于对象==和==事件驱动==的客户端脚本语言
二、哪一年?哪个公司?谁?第一个名字是什么?
1995,NetScape(网景公司),布兰登(Brendan Eich),liveScript
三、W3C第一个标准?
ECMA-262
四、JS包含哪几个部分?
ECMA 、BOM 、DOM
五.如何引入JS?
三种,与引入CSS相似,
内联样式,外部样式,内部样式。
六.JS中有哪些输出方式?区别是什么?
; 以警告框的方式输出,中断后面代码的执行
document.write();输出在页面中,它是影响页面布局
console.log();在控制台输出,不影响用户体验,是程序常用的排序工具,它是输出对象的详细信息
七、JS中如何换行?
如果是纯JS代码中换行 \n (; )
如果是在页面中换行 <<span class="hljs-name" style="margin: 0px; padding: 0px;">br>
(document.write())
八.JS中有哪些数据类型?
基本数据类型: Number/String/Boolean/Null/Undefined/Symbol
复合数据类型:Object
九.标识符的命名规则:
1.包含字母/数字/下划线/$/中文
2.不能以数字开头
3.不能是关键字/保留字
4.语义化
5.驼峰命名
1>大驼峰: ZhongHuaRenMingGongHeGuo 常用于类(构造函数名)
2>小驼峰: zhongHuaRenMingGongHeGuo6.匈牙利命名法:
整数(int) iNum
小数(float) fNum
布尔(boolean) boo
数组(array) arr
函数(function) fn
正则 re
十. 什么是变量?
是在内存中开辟一块空间,这块空间用于存储数据,且数据随程序会发生改变.
1. 如何声明变量?
显式声明: var iNum = 3;
隐式声明: iNum = 3;
2. 如何给变量赋值?
初始化
先声明后赋值
十一.运算符
1.递增递减运算符 ++ --
i++ == i; ++i == i + 1;
2. 算术运算符 * / % + -
3 * "3"(9) "3" * "3"(9) 3 * null(0) 3 * "3a"(NaN) 3 * undefined(NaN) 3 * true(3) 3 * false(0)
3 / 2(1.5) 3 / '2'(1.5) 3 / '3a'(NaN) 0 / 3(0) 3 / 0(Infinity) 0 / 0(NaN)
8 % 3(2) 3 % 8(3) 2 % 8(2)
3 + 3(6) 3 + '3' = '33'("33") 3 + null(3)
3.关系运算符 > < >= <= == != === !==
3 >= 3(true) 3 > "2"(true) "100" > "2"(false)逐位比较 '我' > '你'(true)(Unicode编码比较)
//切记
null == 0 (false)
null == "" (false)
null == false (false)
null == undefined (true)
null === undefined (false)
4.逻辑运算符
!
&& (如果左边表达式的值为true,则返回右边表达式的值;如果左边表达式的值为false,则返回左边表达式的值,此时,发生短路)
|| (如果左边表达式的值为true,发生短路,返回左边表达式的值,如果左边表达式的值为false,返回右边表达式的值)
!1(false) !-1(false) !0(true) !""(true) !NaN(true) !undefined(true)
3 > 2 && 4 (4)
3 - 3 && 4 (0)
3 > 2 || 4 (true)
3 - 3 || 4 (4)
5. 三元(三目)运算符 表达式 ? 表达式1 : 表达式2
如果表达式成立,执行表达式1,不成立执行表达式二
6. 特殊运算符: new(创建对象) typeof instanceof
typeof 1 "number"
typeof typeof 1 "string"
var a = new Object;
console.log(a instanceof Object); //true;
typeof一般只能返回如下几个结果:number,boolean,string,function,object,undefined。
instanceof判断是不是某种数据类型
var a = Symbol();console.log(typeof a); //symbol
7. 赋值运算符
简单赋值 : =
复合算术赋值: += -= *= /= %=(取运算符左边变量中的值与运算符右边表达式的值进行相应的算术运算,再将结果赋值给左边的变量)
var a = 3;
a *= 3 + 1; //12
十二.JS内置函数(数据类型的转换)
1. parseInt()
2. parseFloat()
3. Number()
4. isNaN() 判断是否是NaN,是就返回true,否则返回false;
5. eval() :解析字符串,将字符串解析为表达式并返回表达式的值
Day2
一.程序控制的三大结构?
顺序结构/选择结构/循环结构
二.实现选择结构语句有哪些?
1. 三元 ?:
2. if
1> if(){}
2> if(){}else{}
3> if(){}else if(){}……
3. switch
Day3
一.什么是循环?
满足一定条件,(重复)执行一段相同代码块。
二.循环思想(循环三要素)?
1、从哪里开始 2、到哪里结束 3、步长
三.实现循环语句?
1. while
格式 :
表达式1;
while(表达式2){
语句组;
表达式3;
}
2. do while
格式 :
表达式1;
do{
语句组;
表达式3;
}while(表达式2);
3.for循环
for(表达式1;表达式2;表达式3){
语句组;
}
表达式1;
for(;表达式2;表达式3){
语句组;
}
表达式1;
for(;表达式2;){
语句组;
表达式3;
}
四.实现无限循环(死循环) : 让条件永远为真
while(2){}
do while(1)
for(;1;){}
五.break
break :
1.用于switch,终止switch语句
2.用于循环,终止一层循环
continue :
用于循环,终止一次循环
六.循环嵌套
Day4
一.什么是函数
对于需要反复使用的功能代码,将其封装成一个独立的模块,这种功能代码块叫函数。
功能:将代码组织为可利用的单位,可以完成特定的任务并返回数据
二.函数的好处?
可以在同一个程序或其他程序中多次重复使用(通过函数名调用)。
三.如何定义函数?
1.语句定义法
function 函数名([参数]){
语句组;
}
2.表达式定义法
var 函数名 = function([参数]){
语句组;
}
四.如何调用函数?
1.一般调用 : 函数名([参数])
2.递归调用 : 自身内部调用自己
3.事件调用
4.计时器调用
五.函数的参数
1.什么是形参?
定义函数时,所传递的参数
2.什么是实参?
调用函数时,所传递的参数
六.函数的返回值 return
return 后可不跟参数,遇到return函数就停止了。
七.作用域
; //undefined
var a = 3;
function fn(){
alert(4);
}
; //3
;//function a(){ ;}
var a = 1;
; //1
function a(){
alert(2);
}
//a();
; //1
var a = 3;
; //3
function a(){
alert(4);
}
; //3
<<span class="hljs-name" style="margin: 0px; padding: 0px;">script type="text/javascript">
function fn(){
alert('hehe');
}
// ; // a is not defined
</<span class="hljs-name" style="margin: 0px; padding: 0px;">script>
<<span class="hljs-name" style="margin: 0px; padding: 0px;">script type="text/javascript">
var a = 3;
fn();//hehe
</<span class="hljs-name" style="margin: 0px; padding: 0px;">script>
; //undefined
var a = 3;
; //3
function fn(){
; //undefined
var a = 4;
; //4
}
fn();
; //3
; //undefined
var a = 3;
; //3
function fn(a){ //a = 3
; //3
var a = 4;
; //4
}
fn(a);
; //3
; //undefined
var a = 3;
; //3
function fn(){
; //3
a = 4;
; //4
}
fn();
; //4
function fn(){
a = 4;
; //4
}
fn();
; //4