javescript基础知识详解及拓展知识

基础知识

一 ,概念:
js:脚本编程语言。它不需要通过web服务器直接在浏览器中就可以执行,js可以被镶嵌入html页面中执行。

二,组成:
语法标准
1, (ECMASCRIPT):javescript的语法标准;
2, BOM:javescript操作网页上的元素的API.
3. BOM:javescript操作浏览器的部分功能的API,
特点:1,简单易用(封装好了一些方法,属性直接可以使用)2, 面向对象:属于编程思维思想(C# C++ java PHP…)基于对象:
3,解释执行:js自己的特点(代码直接执行)。 编译执行:(C#)
范围:
JS书写位置介绍
(1),内嵌式写法、
(2),外联式写法:新建js文件 然后用src引用 。补充属性:async:异步:该属性指是浏览器将外部js文件下载完成后,立马执行。defer:延时执行。
(3),行内式写法(不常用)
4,JS中常用的输出消息
(1),通过alert(123) 或者 alert(“数字或字母带引号”)。
(2),document.write(“你好”); 该方法还可以设置htmkl标签。
(3),在控制台输出消息:console.log(123或者“你好”)
(4),接收用户输入消息:prompt(加文字或信息);
(5),确定取消方法confirm(“确定退出吗?”)
5. 变量 (重点): 1,会变化的量(数据) 2. 用来存储数据的容器;
6.规范变量名称:(1) 不推荐使用汉字定义变量。
(2),不能使用特殊字符或者特殊字符开头。
(3)不能使用数字或者数字开头定义变量。
(4) 变量中间不能出现空格,
(5),不能使用关键字定义变量。
(6)不推荐使用保留字定义变量。
注意: 1,一行完整代码结束必须以“;”结束。 2 js中区分字母大小写 多注意。3,不要重复定义变量。
变量定义:var 变量名 =值; 注意;1,首先定义变量必须使用var 关键字。 2, “=”赋值运算符。3.一个变量只能一个值(只能保存最后一次的赋值结果值)。

三.数据类型(重点)
1,数据类型:数据 类型是用来确定变量的储存位置。
常见的数据类型:# 数字类型(number) #字符串类型(string)# 布尔类型(boolean)比较简单;
2. #对象(object) #数组(array) 比较高级深奥。
3. #数字类型(number)
(1),如果一个变量是纯数字,那么该变量的数据类型就是数字类型。
(2),数字类型的取值范围:能表示的最大值是正负1.7976931…乘以10的308次方。最小值是正负5乘以10的负324次方。
4.数字类型的表示方法:
(1)十六进制的表示方式:以0x开头 0-f.
(2)十进制表示法。
(3)八进制的表示方式:以0开头 0_7.
5.字符串类型:
(1),如果一个变量的值使用双引号或单引号,那么该变量的数据类型就是字符串类型。
(2),字符串特性:不可变。(在内存中的不可变,不是值不可变)
注意:请不要大量拼接字符串。
属性:变量.length 获得变量的长度。
(3) 转义字符(了解):" " 双引号 转义 ’ 单引号转义 \r回车符 \n 换行符。
6,布尔类型:如果一个变量的值是true 或者false 那么该变量的数据类型就是布尔类型。
7, underfined类型: 如果一个变量的值是 underfined或者定义了一个变量没有给该变量赋值,那么该变量的数据类型就是underfined。
8.比较运算符; #大于 > # 小于 < # 等于 == 或者=== 。 注意;= 属于赋值运算符 (1=2 把2赋值给1)
#不等于!== # 大于等于 >= # 小于等于 <=
注意:通过比较运算符得到是一个布尔类型结果(true 或 false) true:条件正确成立 false代表条件错误不成立。
9 ,算数运算符 : # 加+(特点;如果是数字类型的变量相加,最后的结果是数字类型,如果是非数字类型的变量相加,最后结果是字符串{加好起到链接字符串的作用})
# 减 - (特点;如果是数字类型的变量相减,最后的结果是数字类型。如果是数字的字符串相减,最后的结果是数字ps:隐式数据类型转化。如果是非数字的字符串相减,最后得到的结果是NaN。NaN:not a number) #乘 *
# 除 / (特点:如果是数字类型的变量相除,最后的结果是数字类型。如果除数是0,那么得到的结果是无穷大infinity) #取%(获取余数) # ()优先级
10, 数据类型判断; typeof(变量) :获取变量的数据类型
注意: (1),如果一个变量的值是NaN,那么该变量的数据类型是number类型。
(2),如果一个变量的值是underfined 那么该变量的数据类型是underfined类型.
(3),如果一个变量的值是infinity(无穷大)那么该变量的数据类型是number类型
(4),is NaN ()他是一个方法 用来判断它是不是一个数字

四 补充知识
一 ,对象:#属性(特征)
#功能 函数(方法)

五 javascript新基础
1, Math 对象
#Math.ceil(x) 对数字进行向上舍入,(天花板函数)
注意:1,该方法返回的是一个大于当前数字,并且与她最接近的一个整数。、
2. 如果当前数字是一个整数,那么返回的就是当前数字本身。
# #Math.floor(x) 对数字进行向下舍入(地板函数)
注意;该方法返回的是一个系哦啊与当前数字,并且与它最接近的一个整数。
# Math.abs(x) 返回数字的绝对值。
# Math.random() 返回0到1 之间的随机数。注意:该方法不能取到0和1。
# Math.max(x,y…) 返回他们之间的取 最大值。 # Math.min(x,y…) 返回他们之间的取最小值。
# Math.round(x) 返回他们之间的四舍五入,返回的是整数。
# Math.pow(x,y) 返回x的y次方。
2 ,数据类型转换 # 隐式转换: 程序在参与运算过程中,发生数据类型转换。
# 显示转换(强制转换):1,转换成指定的具体数据类型。
3,转换成字符串类型 #通过 变量.tostring()把数字类型强制转换字符串类型。
#通过string() 转换为字符串类型。
4,转换数字类型 # number(x) 特点: 通过该方法可以转化为数字类型,保留原来 内容。
#pasrInt(x) 特点: 通过该方法可以转化数字类型,但是只能保留整数(返回是整数)
#parseFloat(x) 特点: 通过该方法可以转化为数字类型,但是保留原来值的内容。 如果是非数字的字符串,直接保留数字部分。
5. 3, 转布尔类型; Boolean(x)
注意;1,数字0, 空字符串,NaN,underfined,null转换为false. 2,除以上特殊值,转布尔类型其他转都是true。
3,布尔类型转数字类型只能用number().转字符串就用字符串类型。
6,逻辑运算符 :通过逻辑运算符要链接布尔类型的结果
# 或运算(短路运算) || 1,在或运算过程中,如果有一个结果为true,那么最后的结果是true。
2,在或运算过程中,只有结果都为false,最后的结果才为false.
# 与(且)运算&& :条件必须同时满足。1,在且运算过程中只有结果都为true,最后的结果才为true. 2 ,结果有一个为false,结果就是false.
# 非 运算 ! 假为真 真为假。
7. 等号逗号运算符;(var n1= ,n2=, n3,…类似联写) = 赋值 == 相等(只判断值不判断数据类型) ===相等 (判断值也判断数据类型) !=不相等
8 分支结构 (条件判断) 语法:
# if(条件表达式){逻辑代码1; } else{ 逻辑代码2 }
# 执行顺序;1,首先进行条件判断 2, 如果条件成立(true),那么程序执行if语句中的代码。 2, 如果条件不成立(false)那么程序执行else中的代码语句。
9,条件结构嵌套 语法;
if(条件表达式){ } else if (条件表达式){ }else if (条件表达式){ }else { }
10 ,三元表达式 语法:
条件表达式? 成立就用代码1 不成立 代码2。】
执行顺序: #首先判断条件。 如果条件 成立就用代码1 不成立 代码2
注意:三元表达式可以嵌套,但是不建议使用。
11 switch语法结构
#语法: switch(变量){ case 值 1: 代码; break;
case 值 1: 代码; break;…结束加default: alert(); break; }
注意:1,在switch语句中,switch中的变量数据类型必须与case后面值的数据类型保存一致。
2,一般情况下,如果变量表示的不是一个范围,而是一些具体值,可以考虑使用switch结构。
3,Case 后面的值可以同时设置多个。4,每一个代码块结束后必须以break 结束
12, 变量自增自减
var i=7
注意: 变量自增或自减 ,每次加1或减1.
变量自增: i++ , (如果将i++赋值给一个新的变量,那么该变量的值等于i++之前的值【先赋值后计算】 ++i(如果将i++)赋值给一个新的变量,那么该变量的值等于i++之后的值【先计算后赋值】
变量自减: i-- --i 。
13 循环
# while循环 语法: 1, 初始化变量 var a=1; while(条件表达式){ 循环体代码; }
执行过程: 1 先变量初始化 2, 判断条件 3,如果条件为true,那么程序会进入循环体代码执行
4,如果条件为false ,那么程序不会进入循环体重执行代码(或者跳出循环体代码)
注意:写循环的时候,注意避免死循环。
# dowhile循环 语法 :初始化变量
do { 循环体;} while(条件表达式)
执行顺序:首先执行do中的代码。然后判断条件是否成立。如果条件成立,则继续执行do中的代码。若不成立那么结束。
与while循环区别: 在条件不满足的情况下,要多执行一次
# for循环 语法 for(变量初始化;表达式; 变量自增或自减){ 循环体代码;}
执行过程:1 变量初始化 2表达式判断3 如果表达式成立,那么执行循环体中代码,然后进行变量自增或自减,继续判断表达式是否成立,如果成立则继续,反之则程序结束。
14 , break语句和continue语句
#在循环中使用break语句,程序会结束本次循环,立马进入到下一次循环中,当程序执行完continue语句时,后面的代码不会执行。
15, 数组赋值结束、 # 数组一次可以定义多个。
1,var ary=new array(); 通过对象创建数组。
1.var ary=[ ]; 直接创建数组。
# 数组赋值:通过索引(下标)赋值。注意;数组中索引引导号(编号)从0开始。
# 数组遍历 # 数组属性: length 数组.length 获取数组长度。
2,数组方法: 合并数组 (返回的是新数组)
join() 得到的是一个字符串

拓展知识

原始数据类型: number,string,boolean,undefined, null,object
基本类型(简单类型),值类型: number,string,boolean
复杂类型(引用类型):object
空类型:undefined,null

1.区别
基本数据类型把数据名和值直接存储在栈当中
复杂数据类型在栈中存储数据名和一个堆的地址,在堆中存储属性及值,访问时先从栈中获取地址,再到堆中拿出相应的值
2 不同数据类型作为参数时 函数内部对参数的修改是否改变外部变量的值
基本数据类型作为参数时,函数内部对参数值的修改不会改变外部变量的值

//定义以s为参数的函数,返回s的值
  function a(s){
      s=100;
    return s;
   }
    var y=2;
    a(y);//y作为参数调用函数a
    console.log(y);//y还是为2

结果还是1因为把y的值给s时是简单的复制了一份,y和s可以单独操作不相互影响
复杂数据类型作为参数时,函数内部对参数值的修改会改变外部变量的值
因为复杂数据类型赋值是把栈中对象的地址赋给变量,函数内外两个变量指向同一个对象,所以只要对象的属性值改变,两个变量值都会改变

function student(age,name,grade){
    this.age=age;
    this.name=name;
    this.score=grade;
}
var s1=new student(18,"wjq",2);//创建一个student对象
function a(s){
     s.name="xxx";
}
a(s1)//把s1赋给s
console.log(s1.name);//输出xxx

所以要弄懂js中简单数据类型和复杂数据类型的区别,关键还要搞懂两个在内存中的存储过程。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值