javascript基础

一将javascrip添加到网页的三种方法:

  1.  将javascript代码写道一个单独的文件中,再将这个文件通过script标签嵌入到HTML文件中

<script type="text/javascript" src="script.js">

    2.直接将javascript代码写道HTML文档中的script标签中

 <script>

//在这里编写javascript代码

</script>

二 javascript的组成:

1.核心,描述了在该语言的语法,类型,语句,关键字等基本内容;

2.BOM,浏览器对象模型描述了浏览器进行交互的方法和接口。

3.DOM,文档对象模型是HTML和XML的应用程序的接口描述了访问网页元素的方法。

三 变量:

  1. 变量名可以由大小写字母、下划线(_)、美元符号($)、数字组成,但数字不能位于开头位置
  2. 变量名大小写敏感,hello、Hello、HELLO是三个不同的变量。
    var a = 100, b = 'hello';	//变量a的值是数字,变量b的值是字符串

     

  3. 已经声明但尚未初始化的变量,它的值是一个特殊值:undefined

  4. 没有用var声明过的变量名也可以直接使用,会被当作全局变量

  5. 用==比较两个变量的值是否相等

  6. 用===比较两个变量的值和类型是否都相等

  7. 使用typeof会返回变量类型

 三 数据类型:

  1.  字符串:  var a = '这是一个字符串,值的两端用单引号或双引号均可,规范要求统一都用单引号';

    var b = "用双引号也是符合语法的"; //最好使用单引号。

    var i = g + h; //字符串可以用加号+连接
    字符串的长度用.length属性获取

   //JavaScript中的字符串以Unicode格式保存
    //任何单个字符的长度都是1,不区分全角还是半角

     2.数字(Number):

JavaScript不区分整数类型和浮点数类型,它只有一种数字类型,可以保存任意数字。

JavaScript始终以浮点数进行运算,不需要特意写成100.0

有时可能会出现浮点运算精度问题,必要时可用Math.round()四舍五入

    var d = 0123;        //0开头的数字被当作8进制,0123是十进制的83
    var e = 0x123;        //0x开头的数字被当作16进制,0x123是十进制的291
    alert(1/0);        //结果是数字类型的一个特殊值Infinity,代表无穷大
    alert(1/0 == Infinity);    //结果是true

    var f = parseInt('123');        //字符串转成整数,结果是数字类型的123
    var g = parseInt('123.4')        //结果仍是数字123,parseInt()只保留整数部分
    var h = parseFloat('123.4')    //结果是数字123.4,parseFloat()是字符串转浮点数
    var i = 123.4 + '';    //结果是字符串'123.4',数字转字符串只需要加个空字符串
    alert(parseInt('xxx'));    //结果是另一个数字类型的特殊值NaN,代表不是数字
    alert(parseInt('xxx') == NaN);    //结果是false,NaN跟自己不相等,不能用==比较
    alert(isNaN(parseInt('xxx')));    //结果是true,isNaN()是判断NaN值的专用函数

3.布尔型:

    var a = true, b = false;            //布尔型只有两个值:true和false

    var x = 7 ;   var e = !!x;        //e = true,数字转布尔型(0转为false,非0数字转为true)

    var h = b + '';        //h = 'false',布尔型转字符串(结果是字符串'true'或'false')

4.null

var a = null;        //此类型只有一个特殊值:null,代表不存在的对象(空对象指针

5.未定义(Undefined)

var a = undefined;    //这个类型也只有一个特殊值:undefined,代表未定义
    var b;            //当一个变量声明后未赋值过,它的值是undefined

function hello(a, b) { ... }    //当调用函数时没有传实参,函数中获取的参数值就是undefined
    var d = window.xxx;    //当访问一个对象中不存在的属性时,得到的值也是undefined

alert(null == undefined);        //结果是true

alert(null === undefined);    //结果是false,二者不属于同一个基本类型

对象(Objects)
    除了前面讲的五种基本类型之外,JavaScript里其余的一切都是对象。
    数组(Array)是对象
    函数(Function)也是对象
    对象(Object)当然是对象

如何判断一个值是什么类型?    用typeof运算符

alert(typeof NaN);        //'number'

    alert(typeof null);        //'object'
    alert(typeof undefined);        //'undefined'

如果声明的变量将被用来保存一个对象,但还不能马上赋值时,那么最好先将该变量的值初始化为 null。这样将来只要检查变量的值是不是null就可以判断出这个变量是否已经引用了一个对象了。

而一般情况下,都不需要显式地去给一个变量赋值为undefined,因为所有变量只要未初始化,它的值就已经是undefined了。

 

四 数组:

创建数组(用一对方括号表示新创建的空数组)
    var a = [];

给数组元素赋值(同一个数组中允许包含任意不同类型的元素)
    a[0] = 123;
    a[1] = 'hello world';
    a[2] = false;
初始化数组时可以直接提供数组元素的值
    var a = [123, 'hello world', false];    //初始化结果与用上面的方法相同

通过.length属性可以获取数组元素的个数
    alert(a.length);

    var a = ['banana', 'apple', 'orange'];
    a.push('grape');    //向数组中追加新的元素
    alert(a.length);        //结果是4,证明新增了一个元素
    alert(a[3]);        //结果是'grape',通过最大的下标可以取到新添加的元素
    a.reverse();        //将数组的元素顺序反转
    alert(a);        //结果是['grape', 'orange', 'apple', 'banana']
    var s = a.join('_');    //将数组转成字符串,以参数指定的分隔符分隔数组元素
    alert(s);        //结果是字符串'grape_orange_apple_banana'
    var b = a.pop();    //移除数组中的最后一个元素并返回该元素
                //b='banana',a=['grape', 'orange', 'apple']
    var c = a.shift();    //移除数组中的第一个元素并返回该元素
                //c='grape',a=['orange', 'apple']
    a.unshift('mango');    //将指定的元素插入数组开始位置并返回该数组
                //a = ['mango', 'orange', 'apple']
    var d = a.slice(0, 2)    //返回数组中的一段,如果不提供第二个参数就一直到结尾
                //d = ['mango', 'orange']
    var e = a.concat(d);    //连接两个或更多个数组
                //e = ['mango', 'orange', 'apple', 'mango', 'orange']

 

五 javascript函数:

创建:函数可以通过两种方式创建
    第一种(声明式):
    function myFunc1(myName) {
        alert(myName + '的第一个函数执行了!');
    }
    第二种(引用式):
    var myFunc2 = function (myName) {
        alert(myName + '的第二个函数执行了!');
    };
以上两种方式创建的函数,调用方法是一样的
    myFunc1('张三'); //张三的第一个函数执行了
    myFunc2('李四'); //李四的第二个函数执行了

         两种声明方式区别:

         声明式函数在运行前解析;引用式函数在运行时解析。

<script>
    function f1() {
        alert(1);
    }
    f1();                   //因为第一个f1在运行前就被第二个f1覆盖所以此处调用的是第二个f1
    function f1() {
         alert(2);
    }
    f1();             //调用第二个f1
    var f1 = function() {
         alert(3)
    };
    f1();       //调用第三个f1
    var f1 = function() {
        alert(4)
    };
    f1();     //调用第四个f1
</script>

function对象:

      作为参数:

function f3(a, b) { return a + b }
function f4(a, b) { return a - b }
function f5(f, a, b) { return f(a, b) }

f5(f3, 10, 5)    //15
f5(f4, 10, 5)     //5

     作为返回值:

function f6(a, b) {
    return function(c) {
        return a + b + c;
    };
}
var f7 = f6(10, 20);
var f7 = function(c) {
    return 10 + 20 + c;
};
f7(5)        //35
f7(30)        //60

 

object对象:

    对象用来表示一组“名-值”形式的结构化数据
   创建对象
    var p1= {};  
   设置对象属性(绿色的是自定义的属性名)
    p1.name = "张三";
    p1.sex = "男";
    p1.age = 20;
另一种设置属性的方法(与上面结果相同)(属性名可以是js的关键字)
    p1['name'] = "张三";
    p1['sex'] = "男";
    p1['age'] = 20;
访问对象的属性值
    alert(p1.name);
    alert(p1['name']);
给对象添加方法(属性值是可执行的函数)
    p1.say = function () {
        alert('我叫' + this.name + ',' + this.age + '岁!');
    };
    p1.happyBirthday = function () {
        this.age++;

在初始化对象时同时设置属性值和方法
    var p1 = {
     'name': '张三',
     'sex': '男',
     'age': 20,
     'say': function () {
     alert('我叫' + this.name + ',' +
             this.age + '岁!');
     },
     'happyBirthday': function () {
     this.age++;
     }
    };

 

json:

从结构上看,所有的数据(data)最终都可以分解成三种类型:
标量(scalar):单独的字符串(string)、数字(numbers)等,比如"北京"这个词。
序列(sequence):若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List),比如"北京,上海,广州"。
映射(mapping):一个名/值对(name/value),即数据有一个名称,还有一个与之相对应的值,又称作散列(hash)或字典(dictionary),比如"首都:北京"。
JSON(JavaScript Object Notation)是一种独立于语言的轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。

var p1 = {
    "name": "张三",
    "pets": [
        { "type": "CAT", "name": "Kitty", "age": 2 },
        { "type": "DOG", "name": "Doggy", "age": 5,
            "children": ["lady", "gaga"] }
    ]
}
alert(p1.pets[1].children[0]);        //"lady"

日期对象:

创建方法:
var d = new Date();     
d.toString();        //Wed Jul 4 15:46:13 UTC+0800 2012  国际时间

日期对象提供了多种方法,以下介绍几种常用方法:
getFullYear();              //返回4位数字年份
getMonth();               //返回月份(0-11)
getDate();                  //返回一月中的某一天(1-31)
getDay();                   //返回一周中的某一天(0-6)
……

setFullYear()方法和getFullYear()方法对应,表示设置年份……

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值