点击直通车↓↓↓

一、概念

JavaScript(JS)是一种基于对象和事件驱动、且可以与HTML标记语言混合使用的脚本语言,其编写的程序可以直接在浏览器中解释执

二、与java的关系

从本质上来讲,Java和JS是两门语言,并没有本质上的联系。

三、如何写js代码

在html代码中写,三种方式
1.先写好一个*.js文件,通过script标签引入这个js文件  <script src="demo1.js"></script>

2.在script标签中直接书写js代码

 <script type="text/javascript">
function hello(){
alert("hello world!");
}
</script>

3.直接在html代码中写

  不推荐这样写

四、变量

全局变量
1.在方法外部定义的变量
2.在方法内部,不添加var关键字(仅限于非严格模式)
局部变量
在方法内部使用var关键字定义的变量

 <script type="text/javascript">
"use strict" var a = 10;
var date = new Date(); //js的语言是抄袭java,注释和java一样
//js使用console.log(变量)
console.log(date) function func(){
abc = 110;
console.log(abc)
console.log(a)
}
func();

     //报错
console.log(abc) </script>

一、创建数组

1.创建一个空数组
var arr = new Array();
2.创建一个具有长度的空数组
var arr2 = new Array(size)
3.创建一个具有元素的数组
var arr3 = new Array(ele1,ele2, ... ,eleN)
4.创建一个空数组或具有元素的数组
var arr4 = [ele1,...,eleN]

二、数组属性

length 表示数组的长度,可以利用该属性清空数组(length = 0)

三、数组方法

push( ele ):向数组的尾部添加一个元素,返回数组的新长度
unshift( ele): 向数组的头部添加一个元素,返回数组的新长度
pop():从数组的尾部取出一个元素,返回该元素本身
shift():从数组的头部取出一个元素,返回该元素本身
join( ele ) : 使用指定的ele字符连接数组中的每个元素,并将其作为一个字符串返回
concat( arr1,arr2,...,arrN ):拼接给定的数组元素,返回一个新数组
reverse():反转数组
sort():对数组的元素进行排序(自然顺序)
splice(start,count,newEle):从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。

参数:

start 开始索引
count 移除元素的数量
newEle 要加入的新元素,该参数可以省略
slice(start,end):截取数组的一段,返回一个新数组

参数:

start 开始索引
end结束索引(不包含),该参数可以省略(截取到数组末尾)

四、遍历数组

for (var i = 0 ; i< 数组的长度;i++)
for (var arrIndex in 数组)

数据类型及数据类型手动转换

 <script type="text/javascript">
/*
6种常用的数据类型,查看变量的数据类型使用typeof
1.undefined 声明一个变量并没有为其赋值
2.null 声明一个变量,并为其赋值为null
3.boolean 声明一个变量,为其赋值为ture或false
4.string 声明一个变量,为其赋值为字符串(单引号和双引号都可以)
5.number 数值型 1.整型 、 2.浮点型 、 3.正负无穷大 、 4.NaN = Not a Number
6.object 对象型
*/ function testDataType() {
var a;
console.log(typeof a, a); var b = null;
console.log(typeof b, b); var c = true;
console.log(typeof c, c); var d = '123';
console.log(typeof d, d); var e1 = 123; //整型
console.log(typeof e1, e1);
var e2 = 123.45; //浮点型
console.log(typeof e2, e2);
var e3 = 1/0; //Infinity无穷大
console.log(typeof e3, e3);
var e4 = Number("haha"); //NaN = Not a Number
console.log(typeof e4,e4) var f = new Array();
console.log(typeof f,f);
}
//testDataType(); function transferNumber(){
var b1 = false;
var n1 = Number(b1);
console.log(n1); var c = null;
var n2 = Number(c);
console.log(n2); var e;
var n3 = Number(e);
console.log(n3); var f = "fadsf123123adfds";
var n4 = Number(f);
console.log(n4); var nullstr = "";
var n5 = Number(nullstr);
console.log(n5); } transferNumber(); function transferString(){
var a = null;
var b;
console.log(String(a));
console.log(String(b)); var c = true;
console.log(String(c));
}
// transferString(); function transferBoolean(){
var a = "";
var b;
var c = null;
var d = 0;
var e = Number("haha"); console.log(Boolean(a));
console.log(Boolean(b));
console.log(Boolean(c));
console.log(Boolean(d));
console.log(Boolean(e)); console.log(Boolean("kjhasdkjfhs"));
console.log(Boolean(123)); } // transferBoolean(); </script>

数据类型的自动转换

  <script>
function test() {
//布尔型、字符串、数字的转化
var a = true;
var b = "888" + a;
var c = 99 + a;
console.log(b); // 888true
console.log(c); // //数字和字符串转化
var d = 33;
var e = "44";
var f = d + e;
var g = 3 * "4";
console.log(f) //
console.log(g) // //null、布尔型、字符串、数字的转化
var h = null;
var h2 = h + 3;
console.log(h2) //
var h3 = "aa" + h;
console.log(h3) // aanull
if (!h) {
console.log("h自动转化为boolean值:false!")
}
}
// test(); function test2() {
var a;
var b = null;
console.log(typeof a + "----" + typeof b); if (a == b) {
console.log("null和undefined可以互相转换!");
}
}
// test2(); function test3() {
//布尔型、数值型、字符串型 在进行相互==比较时,不为数字的那一方自动调用Number()方法
var a = 1;
var b = true;
var c = "true";
var d = "1";
console.log(a==b); //true
console.log(a==c); //false
console.log(a==d); //true
console.log(b==c); //false
console.log(b==d); //true
}
// test3(); function test04() {
//null和undefined互相是相等,且自身也相等,除此之外和谁都不等
console.log("zzz" == undefined); //false
console.log("zzz" == null); //false
console.log(1 == undefined); //false
console.log(1 == null); //false
console.log(0 == undefined); //false
console.log(0 == null); //false
console.log(false == undefined); //false
console.log(false == null); //false
console.log(null == undefined); //true
console.log(undefined == undefined); //true
console.log(null == null); //true
} // test04(); function test05() {
//NaN比较特殊,他和自己都不相等
var a = Number("haha");
var b = Number("haha"); console.log(a == b);
console.log(NaN == NaN); }
// test05(); // ()圆括号
// []方括号
// {}花括号
// <>尖括号 function test06() {
// var a = new Array();
var a = []; //定义一个空数组
console.log(a.toString()); // 什么都没有
}
// test06(); function test07() {
// var a = new Object();
var a = {}; //定义一个对象
console.log(a.toString()); // [object Object]
}
// test07(); function test08(){
var a = {};
console.log(!a); //对象加! 得到一个布尔型的 false
}
// test08(); </script>

数据类型的自动转换2

 <script type="application/javascript">
function test() {
console.log('' == '0') //类型相同,比较值,值不同,所以false
console.log(0 == '') //类型不同,String转Number,空字符串转为0,变成0==0,所以true
console.log(0 == '0') //类型不同,String转Number,'0'转成0,变成0==0,所以true
console.log(false == 'false') //类型不同,Boolean转Number,即0=='false',然后'false'转Number,为0==NaN,所以false
console.log(false == '0') //类型不同,Boolean转Number,即0=='0',就变成第3个例子,所以true
console.log(false == undefined) //对于undefined和null,只有它们本身两个比较才是true,其他都是false,所以false
console.log(false == null) //对于undefined和null,只有它们本身两个比较才是true,其他都是false,所以false
console.log(null == undefined) //对于undefined和null,只有它们本身两个比较才是true,其他都是false,所以true
console.log(true == 2) //类型不同,Boolen转Number,即1==2,所以false
console.log(NaN == NaN) //NaN非常特殊,和自身也不相等,所以false
console.log(' \t\r\n ' == 0) //类型不同,String转Number,空String都将转成0,即0==0,所以true
console.log(0 == []) //对象类型[]调用toString()转为"",即0=="",即0==0,所以true
console.log(0 == ['']) //对象类型['']调用toString()转为"",即0=="",即0==0,所以true
console.log('0' == []) //对象类型[]调用toString()转为"",即'0'=="",类型相同,值不同,所以false
console.log('0' == [0]) //对象类型[0]调用toString()转为"0",即'0'=="0",类型相同,值也相同,所以true
console.log(true == [1]) //对象类型[1]调用toString()转为"1",即1=="1",转1==1,所以true
console.log([] == []) //对象类型,比较引用地址,两个[]是不同的引用地址,所以false
console.log(![] == []) //加!强制转Boolean,任何对象都是true,取反即false==[],转为0=="",即0==0,所以true
console.log(!{} == {}) //即false=={},转为false=="[object Object]",即0==NaN,所以false
}
/**
* 1.==符号在判断左右两边数据是否相等时,如果数据类型一致,直接比较值即可
* 2.==符号左右数据类型不一致时,如果两方数据为布尔型、数值型、字符串型时,不为数字的那一方自动调用Number()方法
* 3.undefined和null这两者互相相等,及自身也相等,除此之外和谁都不想等
* 4.NaN比较特殊,他和自己都不相等
* 5.当数值型、字符串型、布尔型和对象进行比较时,对象调用toString()方法得到一个字符串
* 6.对象和对象进行比较时,直接比较内存地址
* 7.任何对象加!强制转false
*/ test();
</script>

运算符

    <script type="text/javascript">
// "=" 赋值运算符
// "==" 等值符,如果数据类型不一致,会先进行数据类型自动转换
// "===" 等同符,不会发生数据类型的自动转换 console.log(5 + 4);
console.log(5 - 4);
console.log(5 * 4);
console.log(5 / 4);
console.log(5 % 4);
var a = 10
console.log(a++); //
console.log(++a); //
console.log(a--); //
console.log(--a); //
a += 1;
console.log(a); //
a -= 1;
console.log(a); // var f1 = true; var f2 = false; var str1 = "aaa";
str1 += "bbb";
console.log(str1); console.log(5 > 4 ? "是的" : "否") </script>

分枝循环

  <script type="text/javascript">
var age = 20;
/* if(age >= 18)
alert("做苦力!");
else
alert("未成年人,请保护。"); alert("hi")*/
var day = "11";
switch (day) {
case "monday":
console.log("星期一");
break;
case "tuesday":
console.log("星期二")
break;
case "wednesday":
console.log("星期三")
break;
default:
console.log("不上班")
} /*循环语句*/
var num = 10;
while (num > 0) {
console.log(num);
num--;
} var num2 = 10;
do {
console.log(num2)
num2--
} while (num2 > 0); for (var i = 0; i <= 10; i++) {
console.log(i);
} var arr = [123, 321, 11, 22, 33, "44", "55", "66", true, new Date()]; //数组
/* for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}*/
for (var ele in arr) {
// ele是下标
console.log(arr[ele]);
} //continue表示跳出当次循环,继续下次循环
for (var i = 1; i <= 10; i++){
if(i == 5){
continue
}
console.log(i);
} //break表示跳出整个循环
for (var i = 1; i <= 10; i++){
if(i == 5){
break
}
console.log(i);
} </script>

数组

  <script type="text/javascript">
//一、创建数组
//1.创建空数组
var arr = new Array();
console.log(arr.length);
//2.创建具有长度的数组
var arr2 = new Array(10);
console.log(arr2)
//3.创建一个带元素的数组
var arr3 = new Array(123, true, "hello", new Date());
//4.创建一个带元素的数组2
var arr4 = [123];
console.log(arr4.length) //二、属性
// length属性:表示数组的长度
console.log(arr3);
arr3.length = 0; //清空数组
console.log(arr3);
arr3.length = 4;
console.log(arr3); //三、方法
var arrdemo = new Array(123, true, "hello", new Date(), 444333);
//join():指定一个字符,用该字符连接数组的每一个元素,并作为一个字符串返回
var result = arrdemo.join("-");
console.log(result); //push():向数组的末尾添加一个元素,返回数组的新长度
result = arrdemo.push("world");
console.log(result)
console.log(arrdemo); //pop():从数组末尾取出一个元素,并返回该元素本身
result = arrdemo.pop();
console.log(result);
console.log(arrdemo); //shift():从数组头部取出一个元素,并返回该元素本身
result = arrdemo.shift();
console.log(result);
console.log(arrdemo); //unshift():向数组的头部添加一个元素,返回数组的新长度
result = arrdemo.unshift("bbb");
console.log(result);
console.log(arrdemo); //concat():拼接数组,并作为一个新的数组返回
var a1 = [123, 234];
var a2 = ["aaa", "bbb"];
var a3 = [new Date()];
var newarr = a1.concat(a2, a3);
console.log(newarr); //reverse():反转数组
newarr.reverse();
console.log(newarr); //sort():自然顺序
// var sortarr = [4534,22,66,88,123];
var sortarr = [4534, 22, 66, 88, 123, "A", "a", "ab", "ba", "abc", "bac"];
sortarr.sort()
console.log(sortarr); //splice():删除指定位置,指定长度的元素,并在该位置添加新的元素
var s1 = ["aa", 'kjsdhf', '123', 123, 123, 444, 555, 666];
s1.splice(0,0,"laowang");
console.log(s1); //slice();截取子数组
var s2 = s1.slice(3,5);
console.log(s2); </script>

JS 01 变量_数据类型_分支循环_数组的更多相关文章

  1. js之变量与数据类型

    变量 声明 一个变量被重新复赋值后,它原有的值就会被覆盖,变量值将以最后一次赋的值为准. var age = 18; age = 81; // 最后的结果就是81因为18 被覆盖掉了 同时声明多个变量 ...

  2. JS 引入方式 基本数据类型 运算符 控制语句 循环 异常

    一.JS引入方式 什么是JavaScript? JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互,JavaScript是浏览 ...

  3. Java基础学习(一) -- Java环境搭建、数据类型、分支循环等控制结构、简单一维数组详解

    一:java概述: 1982年,SUN公司诞生于美国斯坦福大学校园,并于1986年上市,在NASDAQ(纳斯达克:是全美证券商协会自动报价系统)的标识为SUNW,2007年改为JAVA. 2009年4 ...

  4. Scala基础篇-01变量,数据类型

    一.Scala变量 共有3种变量修饰符: val: 可变 var: 不可变 lazy val: 第一次应用时才计算 二.Scala的数据类型 1)类型不匹配:高精度数值赋给低精度数据类型. 2)Uni ...

  5. 如何判断js的变量的数据类型

    文章首发: http://www.cnblogs.com/sprying/p/4349426.html 本文罗列了一般的Js中类型检测的方法,实际上是每个新手在构建Js知识体系时,都要知晓的,而我只是 ...

  6. (52)Wangdao.com第七天_字面量/变量_标识符_数据类型_数据的存储

    JavaScript 字面量 和 变量 字面量:就是那些不可变的值,如1,2,100,2000,Infinity,NaN 变量: 变量,代表的当前随机分配的内存地址. 变量的值,是可变的,可以用来保存 ...

  7. Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)

    一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...

  8. 正经学C#_变量与其数据类型:《c#入门经典》

    这一篇总结以下变量与其数据类型. 变量:在c#中指 某一个值或者数据存储在变量中,并且可以取出或者查看.变量不仅仅是一种,也有很多种,细分而言就是类型.泛指就是变量.如果是要是使用变量就要 声明变量, ...

  9. Python--前端基础之JavaScript(JS的引入方式,JS的变量、常量和标识符,JS的数据类型,运算符,流程控制,JavaScript的对象)

    JavaScript介绍 JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互. JavaScript是浏览器解释执行的,前端脚 ...

随机推荐

  1. Django中Ajax提交数据的CSRF问题

    错误信息: Forbidden (CSRF token missing or incorrect.): 什么是CSRF: django为用户实现防止跨站请求伪造的功能,通过中间件 django.mid ...

  2. Flex 常用布局

    1.flex布局 1.1  容器指定为flex布局 .box{display: flex;} 1.2 行元素指定flex布局 .box{display:inline-flex} 2.容器的属性 2.1 ...

  3. <Android 基础(三十一)> ObjectAnimator

    简介 ObjectAnimator,是ValueAnimator的子类,支持利用目标视图的属性来实现动画效果.构造ObjectAnimator的时候,将会提取对应的参数来定义动画对象和对象属性.合适的 ...

  4. 浅析ARM公司在物联网领域的战略布局

    From: http://www.cnblogs.com/yefanqiu/p/3447769.html 浅析ARM公司在物联网领域的战略布局 随着ARM芯片的出货量越来越多,自信满满的ARM公司统一 ...

  5. 控制台输出 mybatis 中的sql语句

    控制台输出 mybatis 中的sql语句 在 log4j.xml 文件中 增加如下配置 <!-- mybatis 输出的sql,DEBUG级别 --> <logger name=& ...

  6. Oracle EBS INV更新保留

    CREATE or REPPLACE PROCEDURE UpdateReservation AS -- Common Declarations l_api_version NUMBER := 1.0 ...

  7. C# 实现 JAVA AES加密解密[原创]

    以下是网上普遍能收到的JAVA AES加密解密方法. 因为里面用到了KeyGenerator 和 SecureRandom,但是.NET 里面没有这2个类.无法使用安全随机数生成KEY. 我们在接收J ...

  8. 解决web网站被挂马清除方法

    案例:某公司一个lamp的服务器网站站点目录下所有文件均被植入了广告脚本如下内容: <script language=javascriptsrc=http://%4%66E%78%72%67%2 ...

  9. How to Be Assertive Asking for What You Want Firmly and Fairly

    What Is Assertiveness? It's not always easy to identify truly assertive behavior. This is because th ...

  10. Android开发中使用七牛云存储进行图片上传下载

    Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储 ...