宏定义中有浮点数_JavaScript 定义

b892eaf916cb5e5c9b6a67950bc60c0e.png

变量的声明和赋值

JS中所有类型变量的声明都使用var 1.先声明变量再赋值 var i; i = 5; 2.同时声明和赋值变量 var s= "xyr"; var x, y, z = 10; 3.不声明直接赋值 width=5; 变量可以不经声明而直接使用,但这种方法很容易出错,也很难查找排错,不推荐使用

数据类型

JavaScript 拥有动态类型。相同的变量可用作不同的类型
 ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Boolean、Number 和 String。

undefined Undefined 类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。 var x; 变量 x 没有初始值,将被赋予值undefined null 表示一个空值,与undefined值相等 一种只有一个值的类型是 Null,它只有一个专用值 null,即它的字面量。值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。 alert(null == undefined); //输出 "true" number 表示一切的数字类型 var num1=23; //整数 var num2=23.0; //浮点数 boolean true和false string 一组被引号(单引号或双引号)括起来的文本 var str="This is a String"; Function:函数类型 Object:表示所有的引用类型(对象类型) javascript中的对象、数组和null

typeof运算符返回值如下 undefined:变量被声明后,但未被赋值 string:用单引号或双引号来声明的字符串 boolean:true或false number:整数或浮点数 object:javascript中的对象、数组和null function: js函数

为什么 typeof 运算符对于 null 值会返回 "Object"。这实际上是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。 现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。

typeof() : 获取数据的类型 instancof关键字: 判断左边类型是否是右边类型的实例

如何判断一个类型是否是一个具体的引用类型? typeof() : 获取数据的类型

instancof关键字: 判断左边类型是否是右边类型的实例 如何判断一个类型是否是一个具体的引用类型? 给定一个Date类型,我希望输出Date

typeof只能够判断原始数据类型和Object类型,不能够判断具体的引用类型,比如说Date类型
解决方式: 先采用typeof判断返回的是否是object类型,如果是就是使用instanceof关键字判断是否是Date类型
alert(typeof(date) == "object");
if(typeof(date) == "object"){
    // 到了这里说明一定是引用类型
    if(date instanceof Date){
        alert("Date");
    }
}

选择语句 if语句和Java里面一模一样 单if/if - else/多重if/嵌套if switch语句 Java里面的switch语句可以有哪些类型? byte short int char String(jdk1.7) 枚举 js里面的switch语句可以支持任意类型

循环语句

for、while循环、do-while循环、for-in var fruit=[ "apple", "orange", "peach","banana"]; for(var i in fruit){ document.write(fruit[i]+"
"); } break/continue关键字

js的语法结构

1.顺序结构
    2.选择结构

单if if - else 多重if 嵌套if switch语句 Java里面的switch语句可以有哪些类型? byte short int char String(jdk1.7) 枚举 js里面的switch语句可以支持任意类型

3.循环结构 for while do-while

b72782ade47e2e9382546014bb587d06.png

由于JS是客户端语言,所以可以直接使用浏览器调试 调试方法有三种 1.通过document.write()或者alert()调试 2.通过注释调试 3.通过浏览器调试 Chrome开发人员工具调试 停止断点调试 单步调试,不进入函数体内部 单步调试,进入函数体内部 跳出当前函数 禁用所有的断点,不做任何调试

Js中的函数

函数分类:系统函数和自定义函数

系统函数/全局函数 在JS中总有一些函数是不属于任何一个对象或者类的,这样的函数我们就叫做全局函数 全局函数的访问方式: 直接通过方法访问

eval(): 计算JavaScript字符串,并把它作为脚本代码来执行 encodeURI():把字符串编码成URI decodeURI():解码某个编码的URI

isNaN() 检查某个值是否是数字 如果参数是一个数字,返回false 如果参数不是一个数字,返回true

parseInt() 解析一个字符串为整数 parseFloat() 解析一个字符串为小数

自定义函数 在Java中如何定义函数呢? 访问权限修饰符 返回值类型 方法名(参数类型 变量名1, 参数类型 变量名2...) [throws 异常类名]{ 方法体; return 返回值; }

在JS里面定义函数(满足方法定义的二要素: 参数列表 方法名)
三种方式

1.采用function关键字来定义
    格式:
        function 方法名(变量名,变量2...){
            方法体;
            返回值;
        }

2.采用匿名定义的方式来定义函数

3.采用一个内置对象Function来创建(动态函数)
    var sum2 = new Function("参数列表", "方法体");

在JS里面调用函数
1.函数调用的时候参数可以传递多个,可以和形参不匹配
    注意:
        如果实参的个数小于形参的个数,显示NaN
        如果实参的个数大于或者等于形参的个数,显示实际结果
    其实你传的参数多了都会被一个叫做arguments数组接收掉

2.如果函数重名了,在Java里面叫做重载,在JS里面不存在重载,js会调用最后一个重名的方法

面试题:
函数的重载
什么是重载? --- 发生在同一个类中,方法名相同,参数的个数,顺序,类型不同构成重载
js里面是不存在重载的

如果我想要实现重载的效果,怎么做? (理解即可)
    function getMax(a, b, c, d){
        // arguments数组接收所有的参数
        document.write(arguments.length + "<br />");
        if(arguments.length == 1){
            return a;
        } else if(arguments.length == 2){
            return a > b ? a : b;
        } else if(arguments.length == 3){
            return a > b ? (a > c ? a : c) : (b > c ? b : c);
        } else if(arguments.length == 4){
            return Math.max(a, b, c, d);
        } else {
            return 0;
        }
    }

在JS中的全局和局部变量问题
局部变量和Java是一样的
全局变量: 在定义后所有script标签都能访问

Js中的数组

Java里面定义数组
动态
    int[] arr = new int[5];
静态
    int[] arr = {20, 30, 40};
    int[] arr = new int[]{20, 30, 40};

    String[] arr = {"haha","hehe","heihei"};

    Student[] stus = new Student[5];

js中定义数组(三种方式)
方式一: var arr = [10, 20, 30];
    var arr = ["haha","hehe","heihei"];
方式二: 利用js中的内置对象Array
    var arr = new Array(10, 20, 30);
方式三: 使用JS的内置对象(动态)
    var arr = new Array(3);
    arr[0] = "Hello";
    arr[1] = "World";
    arr[2] = "Java";
JS中访问数组的元素: arr[i]

在Java里面数组只有一个属性: length,没有方法,所以Java里面有集合
在JS里面数组也有length属性,还有很多方法,当然这些方法来自于内置对象Array

注意: 
    1.Js中的数组可以存放任意类型的数据
    2.在JS里面数组也有length属性,还有很多方法,当然这些方法来自于内置对象Array
    4.JS中所有的和数组相关的操作和Java一样,比如
        基本操作:
            1.求和
            2.求最值
            3.求平均值
            4.倒置
        复杂操作
            1.排序
                选择排序
                冒泡排序
            2.查找
                基本查找
                二分查找
        针对排好序的数组进行查找,效率更高
练习: 使用js数组对所有元素求和,求最值并且排序

JS中的二维数组 在Java中有二位数组: 本质是一维数组的数组 在Js中定义二维数组 var cityArr = new Array(3); cityArr[0] = "南昌"; cityArr[1] = "北京"; cityArr[2] = "武汉";

var americanCityArr = new Array(3);
    cityArr[0] = "纽约";
    cityArr[1] = "休斯顿";
    cityArr[2] = "费城";

    var countryArr = new Array(3);
    countryArr[0] = ["中国", chinaCityArr];
    countryArr[1] = ["美国", americanCityArr];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值