javascript基础入门
myzbx 2024-12-01 18:23 57 浏览
第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,今天只是最基础的,明天会很重要,后天会更重要,所以,要好好练习。
- 上一篇:肖sir_html之基本使用(1)
- 下一篇:前端与HTML基础知识
相关推荐
- 使用 Siemens Teamcenter Digital Reality Viewer 打造逼真的数字孪生
-
现代产品通常由数百万个部件组成,需要复杂的设计和协作。工业世界在管理复杂性方面面临重大挑战,传统的可视化工具无法渲染这些大型的多CAD组件,从而无法充分利用数字孪生的优势。为了解决这些难题,西门子...
- 如何在JavaScript中实现数字输入框的范围限制?
-
在JavaScript语言中,实现数字输入框的范围限制可以通过多种方式实现,最常见的方式是利用JavaScript的事件监听机制,和通过JavaScript的条件判断语句来实现范围限制。以...
- 2.3.8.J速算24点终极挑战(速算24点题目及答案)
-
各位数学高手、脑力达人,今天给大家带来一道超烧脑的**24点挑战**!**数字:2、3、8、J(J=11规则很简单:**用加减乘除和括号,把四个数字组合成24!每个数字只能用一次!****看起...
- 分布式系统进阶二十一之短链接生成原理
-
前言短链接(ShortURL)是一种通过缩短网页链接长度来方便分享的技术。相比于传统的长链接,短链接更简洁明了,更易于在社交媒体等平台上分享和传播。在本文中,我们将会详细解释短链接的定义、作用及其构...
- 一、SpringBoo中Mybatis多数据源动态切换
-
我们以一个实例来详细说明一下如何在SpringBoot中动态切换MyBatis的数据源。一、需求1、用户可以界面新增数据源相关信息,提交后,保存到数据库2、保存后的数据源需要动态生效,并且可以由用户动...
- 「JS 逆向百例」层层嵌套!某加速商城 RSA 加密
-
声明本文章中所有内容仅供学习交流,敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!逆向目标目标:某加速商城登录接口主页:a...
- Spring Data Jpa 介绍和详细入门案例搭建
-
1.SpringDataJPA的概念在介绍SpringDataJPA的时候,我们首先认识下Hibernate。Hibernate是数据访问解决技术的绝对霸主,使用O/R映射(Object-Re...
- SpringBoot 开发 Web 系统,快速入门指南!
-
01、背景介绍在之前的文章中,我们简单的介绍了SpringBoot项目的创建过程,了解了SpringBoot开箱即用的特性,本篇文章接着上篇的内容继续介绍SpringBoot用于we...
- Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!
-
之前和大家分享过JDK17的多版本管理及详细安装过程,然后在项目升级完jdk17后又发现之前的注册和配置中心nacos又用不了,原因是之前的nacos1.3版本的,版本太老了,已经无法适配当前新的JD...
- golang语言的魅力精华之玩转通道channel 值得你反复阅读100遍
-
通道用例大全在阅读本文之前,请先阅读通道一文。那篇文章详细地解释了通道类型和通道值,以及各种通道操作的规则细节。一个Go新手程序员可能需要反复多次阅读那篇文章和当前这篇文章来精通Go通道编程。本文...
- 2小时快速搭建一个高可用的IM系统
-
“笔者2019年参加了一次Gopher大会,有幸听探探的架构师分享了他们2019年微服务化的过程。图片来自Pexels本文快速搭建的IM系统也是使用Go语言来快速实现的,这里先和...
- 分库分表以后,如何管理几万张分片表?
-
大家好,我是小富~ShardingSphere实现分库分表,如何管理分布在不同数据库实例中的成千上万张分片表?上边的问题是之前有个小伙伴看了我的分库分表的文章,私下咨询我的,看到他的提问我第一感觉就是...
- Spring Boot JDBC 与 JdbcTemplate 全面指南(万字保姆级教程)
-
一、SpringBootJDBC基础1.1JDBC简介与演进JDBC(JavaDatabaseConnectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序...
- Flink SQL 知其所以然(六)| 维表 join 的性能优化之路(上)
-
废话不多说,咱们先直接上本文的目录和结论,小伙伴可以先看结论快速了解博主期望本文能给小伙伴们带来什么帮助:背景及应用场景介绍:博主期望你能了解到,flinksql提供了轻松访问外部存储的loo...
- 大数据Hadoop之——Flink Table API 和 SQL(单机Kafka)
-
一、TableAPI和FlinkSQL是什么TableAPI和SQL集成在同一套API中。这套API的核心概念是Table,用作查询的输入和输出,这套API都是批处理和...
- 一周热门
- 最近发表
-
- 使用 Siemens Teamcenter Digital Reality Viewer 打造逼真的数字孪生
- 如何在JavaScript中实现数字输入框的范围限制?
- 2.3.8.J速算24点终极挑战(速算24点题目及答案)
- 分布式系统进阶二十一之短链接生成原理
- 一、SpringBoo中Mybatis多数据源动态切换
- 「JS 逆向百例」层层嵌套!某加速商城 RSA 加密
- Spring Data Jpa 介绍和详细入门案例搭建
- SpringBoot 开发 Web 系统,快速入门指南!
- Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!
- golang语言的魅力精华之玩转通道channel 值得你反复阅读100遍
- 标签列表
-
- HTML 简介 (30)
- HTML 响应式设计 (31)
- HTML URL 编码 (32)
- HTML Web 服务器 (31)
- HTML 表单属性 (32)
- HTML 音频 (31)
- HTML5 支持 (33)
- HTML API (36)
- HTML 总结 (32)
- HTML 全局属性 (32)
- HTML 事件 (31)
- HTML 画布 (32)
- HTTP 方法 (30)
- 键盘快捷键 (30)
- CSS 语法 (35)
- CSS 选择器 (30)
- CSS 轮廓宽度 (31)
- CSS 谷歌字体 (33)
- CSS 链接 (31)
- CSS 定位 (31)
- CSS 图片库 (32)
- CSS 图像精灵 (31)
- SVG 文本 (32)
- 时钟启动 (33)
- HTML 游戏 (34)