javascript
作用: 前端html页面的交互,可以实现 效果(动画,操作效果) 数据展示 数据验证 访问数据 (小游戏开发 api接口访问实现(天气预报 地图api ))等等
一.javascript编程语言如何嵌入到网页
- 内嵌写法
在head body里面以script标签的方式去写入 - 外部引入
在head body 内部进行引入script标签 - 标签内部注释:
ctrl+shift+/ 多行注释
ctrl+/ 单行注释
在script标签内部写入可执行代码:
1.es5语法:
数据类型: 6个数据类型
数字: Number
字符串:String
真假型:Boolean
对象型:Object
空值引用:Null 占位置 没人
未定义类型:undefined
对象型细化:
函数类型:Function
日期类型:Date
数组类型:Array
自定义对象:{}
以上的六种数据类型可以分为两种大类型:
1.值类型 number boolean Null undefined (占用的空间大小固定不变)
2.引用类型 Object string (占用的空间位置大小可变 存放在堆种 指针引用)
面试可能会问数据类型的强制转化:(什么是装箱什么是拆箱)
装箱: 值类型转化引用类型
拆箱: 引用类型转化值类型
2.js 如何声明变量(定义变量)
生活小常识: 变量:可变的量 可写可读
常量:不可变的量 只读
声明变量的关键字:var 一个var 全部声明: 但是js严格区分大小写:
例如java : int a=10; float num=1.0; bool n=true;
js里面声明变量的语法规则是:
var 变量名称 是否初始化(是否给值):
变量的命名:
驼峰命名: UserName
帕斯卡命名: userName
带符号 _ user_name
不要重数字
3. 函数
(方法)
js里面 主动为方法 被动为事件 都是调用函数
函数的关键字: function
如何声明函数:
function 函数名称(){}
功能: 代码的封装
//常规函数
function method(函数的参数列表){
/*
* 代码区域
* */
}
1.具名函数 -----这种函数具有声明提前
function method(函数的参数列表){
/*
* 代码区域
* */
}
2.不具名函数(匿名函数) --没有声明提前
var fun=function (){
}
(function () {
})
函数的执行
具名函数执行: 函数名称();
匿名函数:
//自执行函数
(function () {
console.log("匿名函数执行");
})();
var fun = function () {
console.log("匿名函数执行");
}
fun();
//函数里面声明提前的问题:
函数还可以分为 带参函数 函数具有参数列表
function User(a,b,c){
console.log(a,b,c);
}
User(1,true,3);
function UserName(){
//函数的参数列表对象上
//arguments 是个集合类型
//length 属性 代表参数列表的长度
// key:value 键值
console.log(arguments[0],arguments[1]);
}
UserName('小明','男');
var fun2=function (a,b,c){
console.log(a,b,c);
}
fun2(1,2,3);
var fun3=function (){
console.log(arguments);
}
fun3(1,2,3);
(function (a,b){
console.log(a,b);
})(1,2);
(function (){
console.log(arguments);
})(1,2);
函数可以分为有无返回值
function Ifon() {
//函数代码执行完成之后 返回 return 值(任意类型)
return ‘你好’;
}
console.log(Ifon());
var fun4 = function () {
return true;
}
var val = fun4();
console.log(val);
var num=(function (){
return 100;
})();
console.log(num);
函数内部的this指针问题
4.变量的作用域:
1.局部变量 (作用于当前的代码块区域) 定义的局部变量不会出现在window
2.全局变量 (整个作用域) 定义的全局变量默认属域window
5.如何检测数据类型
使用关键字: typeOf
instanceof 判断类型的 用于引用类型
6.数据类型的强制转化 装箱拆箱
装箱: 值类型转化引用类型
拆箱: 引用类型转化值类型
7.闭包
概念: 把局部变量闭包成当前作用域的私有变量 —闭包
优点:把局部变量拿到作用域的外部使用。
缺点:闭包的变量会存到内存里面 , 大量使用闭包会导致内存泄漏。
做开发 尽量避免使用闭包
8.垃圾回收机制: 先了解
概念:指的是方法内部的局部变量在使用完成之后 自动回收,下次调用函数的时候会重置
如果通过闭包 没有自动回收 要进行手动回收
9.js里面的运算符 结构语句
算数运算符 + - * / % = == === ++ –
= == ===
=赋值 == 判断两边值相等 但不限定类型 === 恒等 判断两边值和类型相等
//++自增+1 --自减-1 前置还是后置
//前置是先自增或自减在运算 后置是先运算 在自增自减
逻辑运算符 &&两者都 || 两个满足其一 ! 取反面
数字里面 0为false 非0为true
比较运算符 > < >= <= !=
逻辑结构 (条件)
if(){}
if(){}else{}
if(){}else if(){}else{}
三元运算符: 简写版的逻辑结构: 可以使用到方法内部
条件?true:false
选择结构
switch(属性){
case: break;
case: break;
case: break;
default: break;
}
循环语句:
for 循环
for(; 😉 死循环 1.变量 2.条件 3. 变量自增或自减
{
}
while(){} 先判断后执行
do{} while() 先执行后判断 至少执行一次