javascript基础入门
zhezhongyun 2024-12-03 06:15 34 浏览
第1天,学习的是js最基本的东西(包括js的组成、数据类型、数据类型转换、NaN和isNaN、隐式类型转换、加减乘除以及取余、变量作用域、闭包简单的概念、命名规范、运算符和逻辑运算符、程序流程控制: switch、三目运算符?: 、continue break、json、返回值return 、不定参arguments、获取非行间样式、数组)
一.JS的由什么组成?1.ECMAscript 简单理解就是让计算机理解人类编写的内容(可以说是编译器、解释器)作用:For example,+-*/运算;定义变量var a=12等。它几乎没有兼容性
2.DOM document object model 文档对面模型 DOM就是页面中像div p的一些节点,我们可以操作它。它有一些兼容性,不过大部分可以解决。
3.BOM browser object model 浏览器对象模型 没有兼容性问题(几乎不兼容)
所以别人问你JS由什么组成,能记住上面就尽量记住,因为已经很简化了,实在不行,就直接说由ECMAscript DOM BOM组成。
二. 数据类型(typeof)
数字number 文本String 对象Object 布尔boolean 没定义undefined 函数function
<script>
window.onload=function(){
var num=12; var str="abc"; var oDiv=document.getElementById("div1"); var yes=true; var no; var show=function(){}
var a= num/str/oDiv/yea/no/show;
alert(typeof(a));
}
分别弹出number String Object boolean undefined function
</script>
这就是变量类型;记住typeof这个方法;还有今后将不在写script和window.onload;为了节省空间,只写重要代码。
3.数据类型转换 (parseInt parseFloat)
简单点 var a="12abc" ; alert(parseInt(a)); 结果:12
这个有什么用呢,比如要在文本框id为num1和num2,要求填上两个数字,要他们相加,大部分人要直接alert(num1.value+num2.value);这样是不行的;因为你现在就算输入的是数字,在电脑看来这里的+号在在这里是连接的意思, 所以我们要转换为number数字型才能相加减.alert(parseInt(num1)+parseInt(num2));
4.NaN和isNaN
Not a Number不是一个数字 var a="a";alert(parseInt(a));结果是NaN;
var a="a";var b="b";alert(a==b);结果flase 也就是说,两个都是NaN,但NaN不等于NaN,这点要注意。
好了,这个有什么用呢,前面我们说要文本框input里面填两个数字,但用户如果不小心输入一个字母或其它,上面的结果就会出现NaN.所以,我们应该判断一下,看看用户输入的到底是不是NaN(非数字)
var number=parseInt(num1)+parseInt(num2);
if(isNaN(number)){alert(“请输入数字亲”);}
else(alert(number);)
5.隐式转换 - == * / 我们上面提到parseInt 这是由字符串转为数字,这叫强制转换,所以我们来看看JS中的隐式转换 - == * /
比如 var a="12";这是个字符型 var b=12;这是个number型;alert(a==b);结果true;
再比如alert(a-b);结果 0。
6 加减乘除以及取余 加减乘除就不说了谁都会,我们来说说取余%; alert(9%2);结果1
alert(10%4);结果2
算闰年(能被4整数不能被100整除或者能被400整除)
var year=2016;
if(year%4==0 || year%100==0 && year%400==0){ alert("这是闰年");}
else{alert(“这不是闰年”)}
7.变量作用域 function aaa(){
var a=12;
}
function bbb(){
alert(a);
}
bbb();
结果:报错,为什么报错,以为a是定义在函数aaa里面的,叫局部变量,bbb函数没法调用到aaa里面的函数
var a;
function aaa(){
a=12;
function bbb(){
alert(a);
}
bbb();
}
aaa();
结果:弹出12
为什么正确呢;因为bbb在函数aaa里面,所以bbb函数可以用aaa函数里面的变量;这里的a就是全局变量。
8 闭包,简单点闭包就是孩子能用父亲的东西,上面的例子就是bbb是孩子,他能用aaa父亲的东西,也就是子函数可以使用夫函数的局部变量。初学者这么理解就可以了。
9.命名规范 一般就是类型前缀、首字符大写,比如oDiv oBtn sAB (o为对象,s为字符串,i为number,a为数组等等)
10. 运算符和逻辑运算符 switch 这没什么可讲的,简单,break全部中断 continue结束当前
11 不定参 argument
function add(){
var result=0;
for(var i=0;i<arguments.length;i++){
result+=argument[i
}
return result;
}
alert(add(12,3,4));结果 19
alert(add(14,4,2,6,3,12)) 结果43
12.获取非行间样式getStyle
function getStyle(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr];
}
else{
return getComputedStyle(obj,false)[attr];
}
}
alert(getStyle(obj,width));
13.json
var arr=[{a:3,b:2,c:"abc"},{a:2,b:2;c:12}]
alert(arr[0].a);结果3
alert(arr[1].c)结果12
上面是数组里面装json
var json={a:3,b:"abc",c:10,d:[1,2,3,4]};
alert(json.a)结果3
alert(json.d[2])结果3
json是个重点,里面可以装number string arr等
14 数组
1.var arr=[1,2,3,4];
var arr=new Array(1,2,3,4);
alert(arr[0])结果1
2.var arr=[1,2,3,4];
alert(arr.unshift(5));结果 5 ,1,2,3,4 前面添加
var arr=[1,2,3,4];
alert(arr.shift()) 2,3,4 前面删除
var arr=[1,2,3,4];
3.alert(arr.push(5)); 结果 1,2,3,4,5 后面添加
var arr=[1,2,3,4];
alert(arr.pop()); 1,2,3 后面删除
var arr=[11,2,122,43];
4.alert(arr.srot());排序 但这样子是不对的;结果:11,122,2,43
要这样写:alert(arr.sort(function(n1,n2){return n1-n2}))
结果 2,11,43,122
alert(arr.sort(function(n1,n2){return n2-n1}))
结果 122,43,11,2
5.var arr=[1,2,3,4]; var arr2=[5,6,7];
alert(arr.concat(arr2))连接结果1,2,3,4,5,6,7
alert(arr.splice(1,2,1,2))结果 1212 从第1个开始,输出2个元素,在添加 1,2
6.var str="12-2-3"
var arr=str.split("-";)
alert(arr[0]+arr[1]+arr[2]);结果12,2,3
7.var arr={1,2,3,4};
alert(arr.join(":"));结果1:2:3:4
所以目前数组就学这几种方法 join split splice concat unshift shift push pop
我已经把5 、6个小时的课程简化为这段文字,基础很重要,没有基础以后就跟难学了,千万要记住,要练,要常练,要经常练。
明天我们将来学习DOM操作,事件,cookie Ajax,今天只是最基础的,明天会很重要,后天会更重要,所以,要好好练习。
相关推荐
- Trump Pushes for 15%-20% Minimum Tariffs on EU, Sticks to Auto Duties: Report
-
TMTPOST--U.S.PresidentDonaldTrumpistakingatougherstanceduringtradenegotiationswiththe...
- Note-15.使用A4988控制步进电机(dvp15mc11t控制步进电机)
-
如果需要控制一堆步进电机,那么只使用一个Arduino来控制,就会占用大量的处理时间,而无法处理其他事情,除非使用一个独立的专用步进电机驱动器:A4988。A4988只需两个引脚就可以控制双极步进电机...
- Negotiated settlement, not sanctions, the right way to end the Ukraine crisis
-
Negotiatedsettlement,notsanctions,therightwaytoendtheUkrainecrisis:ChinaDailyeditorial...
- U.S. Services May be Added to EU's Retaliatory Target List as More Members Seek Powerful Trade Tool If Talks Fail
-
TMTPOST--AmericanservicescouldbeaddedtotheEuropeanUnion’sretaliatorytargetlist,highlig...
- S7-1200伺服指令运动指令(s71200伺服位置控制实例)
-
1.MC_Halt指令名称:停止轴运行指令功能:停止所有运动并以组态的减速度停止轴。使用技巧:常用MC_Halt指令来停止通过MC_MoveVelocity指令触发的轴的运行。『注意』部分输入/输出管...
- Deepseek太强了!等了10年的Excel模糊下拉,竟然5分钟就搞定了
-
今天跟大家分享下我们如何通过Deepseek来编写VBA代码,制作模糊搜索的下拉菜单,这个等来十来年的功能,用Deepseek竟然几分钟就搞定了,不得不感叹AI工具的强大,我们以后能干的过AI吗,这真...
- 7.Unity物理关节(unity物理骨骼)
-
7.物理关节Unity的物理关节组件将刚体连接到另一个刚体或空间中的固定点。施加使刚体移动的力,关节限制可以限制移动。关节赋予刚体一定的自由度,从而使这些刚体具有不同的运动。Unity提供的物理关...
- 西门子111报文对应FB284引脚(西门子111报文详解)
-
西门子FB284是基于111报文的功能块,使用FB284比较方便,直接调用就可以控制V90伺服的定位控制。下面是整理的FB284对应的111报文。便于理解FB284功能块,更方面应用在实际项目中。11...
- 数据质量动态探查及相关前端实现(数据质量改进实践指南)
-
需求背景数据探查上线之前,数据验证都是通过写SQL方式进行查询的,从编写SQL,到解析运行出结果,不仅时间长,还会反复消耗计算资源,探查上线后,只需要一次探查,就可以得到整张表的探查报告,但后续...
- 阿里面试官:你连个排序算法都讲不明白?出门右拐吧
-
排序算法一表总览其他注意事项:计数排序中,kkk是整数的范围稳定性是指,序列中相同的数是否有可能交换顺序,例如序列中有两个8,顺序为888和8′8^{'}8′,如果在排序完之后,顺序有...
- 直流电机速度、位置双环控制简明教程
-
速度、位置的双环控制是我们在电机的控制系统中常用的方法,很实用。下面让我们来看一下内部实现的原理。1.速度闭环控制我们一般在速度闭环控制系统里面,使用增量式PI控制。而在我们的微处理器里面,因为控制器...
- 纳米机器人的精准定位与导航(纳米机器人怎么控制位置)
-
纳米机器人的精准定位与导航涉及多学科交叉技术,其“源码”(控制逻辑与算法)需结合硬件特性、环境感知和执行器设计。以下从控制原理、算法逻辑、关键技术实现等方面提供概念性思路(非实际可运行代码),供技术探...
- C语言进阶教程:多级指针的应用(c语言一级指针和二级指针)
-
在C语言中,指针可以指向变量的地址。多级指针(PointerstoPointers或MultilevelPointers)则是指向另一个指针地址的指针。这种概念可以扩展到任意级别(二级指针、...
- 被 Trac 的文件整理能力圈粉了!这 “香” 气挡不住
-
前阵子整理电脑文件夹时,我遇到了个麻烦:上千个文档和照片,要是手动一个个重命名、分类,不仅手得点到发麻,估计还得耗上一上午。于是我就琢磨着,能不能找个办法实现一键批量重命名。我先在网上搜了些批量改名软...
- Enhancer-轻量化的字节码增强组件包
-
一、问题描述当我们的业务发展到一定阶段的时候,系统的复杂度往往会非常高,不再是一个简单的单体应用所能够承载的,随之而来的是系统架构的不断升级与演变。一般对于大型的ToC的互联网企业来说,整个系统都是...
- 一周热门
- 最近发表
-
- Trump Pushes for 15%-20% Minimum Tariffs on EU, Sticks to Auto Duties: Report
- Note-15.使用A4988控制步进电机(dvp15mc11t控制步进电机)
- Negotiated settlement, not sanctions, the right way to end the Ukraine crisis
- U.S. Services May be Added to EU's Retaliatory Target List as More Members Seek Powerful Trade Tool If Talks Fail
- S7-1200伺服指令运动指令(s71200伺服位置控制实例)
- Deepseek太强了!等了10年的Excel模糊下拉,竟然5分钟就搞定了
- 7.Unity物理关节(unity物理骨骼)
- 西门子111报文对应FB284引脚(西门子111报文详解)
- 数据质量动态探查及相关前端实现(数据质量改进实践指南)
- 阿里面试官:你连个排序算法都讲不明白?出门右拐吧
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)
- HTML button formtarget 属性 (30)
- CSS 水平对齐 (Horizontal Align) (30)
- opacity 属性 (32)